project('ntv2', 'cpp', version : '16.2-bugfix5', meson_version : '>= 0.54.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized', 'cpp_std=c++11', 'cpp_eh=none', 'cpp_rtti=false', ] ) cxx = meson.get_compiler('cpp') test_cppflags = ['-Wno-non-virtual-dtor'] common_flags = [ '-DAJALinux=1', '-DAJA_LINUX=1', ] foreach cxxflag: test_cppflags if cxx.has_argument(cxxflag) common_flags += [ cxxflag ] endif endforeach if get_option('warning_level') == '0' add_project_arguments( cxx.get_supported_arguments(['-Wno-deprecated-declarations']), language: 'cpp', ) endif thread_dep = dependency('threads') rt_dep = cxx.find_library('rt', required : false) ajantv2_sources = [ 'ajalibraries/ajaanc/src/ancillarydata.cpp', 'ajalibraries/ajaanc/src/ancillarydatafactory.cpp', 'ajalibraries/ajaanc/src/ancillarydata_cea608.cpp', 'ajalibraries/ajaanc/src/ancillarydata_cea608_line21.cpp', 'ajalibraries/ajaanc/src/ancillarydata_cea608_vanc.cpp', 'ajalibraries/ajaanc/src/ancillarydata_cea708.cpp', 'ajalibraries/ajaanc/src/ancillarydata_framestatusinfo524D.cpp', 'ajalibraries/ajaanc/src/ancillarydata_framestatusinfo5251.cpp', 'ajalibraries/ajaanc/src/ancillarydata_hdr_hdr10.cpp', 'ajalibraries/ajaanc/src/ancillarydata_hdr_hlg.cpp', 'ajalibraries/ajaanc/src/ancillarydata_hdr_sdr.cpp', 'ajalibraries/ajaanc/src/ancillarydata_timecode.cpp', 'ajalibraries/ajaanc/src/ancillarydata_timecode_atc.cpp', 'ajalibraries/ajaanc/src/ancillarydata_timecode_vitc.cpp', 'ajalibraries/ajaanc/src/ancillarylist.cpp', 'ajalibraries/ajabase/system/atomic.cpp', 'ajalibraries/ajabase/common/audioutilities.cpp', 'ajalibraries/ajabase/common/buffer.cpp', 'ajalibraries/ajabase/common/common.cpp', 'ajalibraries/ajabase/system/debug.cpp', 'ajalibraries/ajabase/common/dpx_hdr.cpp', 'ajalibraries/ajabase/common/dpxfileio.cpp', 'ajalibraries/ajabase/system/event.cpp', 'ajalibraries/ajabase/system/linux/eventimpl.cpp', 'ajalibraries/ajabase/system/file_io.cpp', 'ajalibraries/ajabase/common/guid.cpp', 'ajalibraries/ajabase/system/info.cpp', 'ajalibraries/ajabase/system/linux/infoimpl.cpp', 'ajalibraries/ajabase/network/ip_socket.cpp', 'ajalibraries/ajabase/system/lock.cpp', 'ajalibraries/ajabase/system/linux/lockimpl.cpp', 'ajalibraries/ajabase/system/memory.cpp', 'ajalibraries/ajabase/common/options_popt.cpp', 'ajalibraries/ajabase/common/performance.cpp', 'ajalibraries/ajabase/common/pixelformat.cpp', 'ajalibraries/ajabase/pnp/pnp.cpp', 'ajalibraries/ajabase/pnp/linux/pnpimpl.cpp', 'ajalibraries/ajabase/system/process.cpp', 'ajalibraries/ajabase/system/linux/processimpl.cpp', 'ajalibraries/ajabase/system/system.cpp', 'ajalibraries/ajabase/system/systemtime.cpp', 'ajalibraries/ajabase/common/testpatterngen.cpp', 'ajalibraries/ajabase/system/thread.cpp', 'ajalibraries/ajabase/system/linux/threadimpl.cpp', 'ajalibraries/ajabase/common/timebase.cpp', 'ajalibraries/ajabase/common/timecode.cpp', 'ajalibraries/ajabase/common/timecodeburn.cpp', 'ajalibraries/ajabase/common/timer.cpp', 'ajalibraries/ajabase/network/udp_socket.cpp', 'ajalibraries/ajabase/common/videoutilities.cpp', 'ajalibraries/ajabase/common/wavewriter.cpp', 'ajalibraries/ajabase/persistence/persistence.cpp', 'ajalibraries/ajantv2/src/ntv2audio.cpp', 'ajalibraries/ajantv2/src/ntv2anc.cpp', 'ajalibraries/ajantv2/src/ntv2autocirculate.cpp', 'ajalibraries/ajantv2/src/ntv2bitfile.cpp', 'ajalibraries/ajantv2/src/ntv2bitfilemanager.cpp', 'ajalibraries/ajantv2/src/ntv2card.cpp', 'ajalibraries/ajantv2/src/ntv2config2022.cpp', 'ajalibraries/ajantv2/src/ntv2config2110.cpp', 'ajalibraries/ajantv2/src/ntv2configts2022.cpp', 'ajalibraries/ajantv2/src/ntv2csclut.cpp', 'ajalibraries/ajantv2/src/ntv2cscmatrix.cpp', 'ajalibraries/ajantv2/src/ntv2debug.cpp', 'ajalibraries/ajantv2/src/ntv2devicefeatures.cpp', 'ajalibraries/ajantv2/src/ntv2devicescanner.cpp', 'ajalibraries/ajantv2/src/ntv2discover.cpp', 'ajalibraries/ajantv2/src/ntv2dma.cpp', 'ajalibraries/ajantv2/src/ntv2dynamicdevice.cpp', 'ajalibraries/ajantv2/src/ntv2hdmi.cpp', 'ajalibraries/ajantv2/src/ntv2hevc.cpp', 'ajalibraries/ajantv2/src/ntv2driverinterface.cpp', 'ajalibraries/ajantv2/src/ntv2enhancedcsc.cpp', 'ajalibraries/ajantv2/src/ntv2formatdescriptor.cpp', 'ajalibraries/ajantv2/src/ntv2interrupts.cpp', 'ajalibraries/ajantv2/src/ntv2konaflashprogram.cpp', 'ajalibraries/ajantv2/src/lin/ntv2linuxdriverinterface.cpp', 'ajalibraries/ajantv2/src/ntv2mailbox.cpp', 'ajalibraries/ajantv2/src/ntv2mbcontroller.cpp', 'ajalibraries/ajantv2/src/ntv2mcsfile.cpp', 'ajalibraries/ajantv2/src/ntv2nubaccess.cpp', 'ajalibraries/ajantv2/src/ntv2nubpktcom.cpp', 'ajalibraries/ajantv2/src/ntv2publicinterface.cpp', 'ajalibraries/ajantv2/src/ntv2register.cpp', 'ajalibraries/ajantv2/src/ntv2registerexpert.cpp', 'ajalibraries/ajantv2/src/ntv2resample.cpp', 'ajalibraries/ajantv2/src/ntv2routingexpert.cpp', 'ajalibraries/ajantv2/src/ntv2rp188.cpp', 'ajalibraries/ajantv2/src/ntv2serialcontrol.cpp', 'ajalibraries/ajantv2/src/ntv2signalrouter.cpp', 'ajalibraries/ajantv2/src/ntv2spiinterface.cpp', 'ajalibraries/ajantv2/src/ntv2subscriptions.cpp', 'ajalibraries/ajantv2/src/ntv2supportlogger.cpp', 'ajalibraries/ajantv2/src/ntv2transcode.cpp', 'ajalibraries/ajantv2/src/ntv2utf8.cpp', 'ajalibraries/ajantv2/src/ntv2utils.cpp', 'ajalibraries/ajantv2/src/ntv2verticalfilter.cpp', 'ajalibraries/ajantv2/src/ntv2vpid.cpp', 'ajalibraries/ajantv2/src/ntv2vpidfromspec.cpp', 'ajalibraries/ajantv2/src/ntv2task.cpp', 'ajalibraries/ajantv2/src/ntv2testpatterngen.cpp', ] ajantv2_args = [ '-D_REENTRANT', '-DAJASTATIC', '-DAJALinux', '-DAJA_LINUX', '-D_LARGEFILE_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', ] ajantv2_inc = include_directories( 'ajalibraries/ajaanc/includes', 'ajalibraries/ajantv2/includes', 'ajalibraries/ajantv2/src', 'ajalibraries/ajantv2/src/lin', 'ajalibraries', 'ajalibraries/ajabase', ) libajantv2 = static_library( 'libajantv2', sources: ajantv2_sources, cpp_args: ajantv2_args, include_directories: ajantv2_inc, pic: true, override_options: ['cpp_eh=default', 'werror=false'], install: false ) libajantv2_dep = declare_dependency( link_with: libajantv2, include_directories: ajantv2_inc, )