X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=buildtools%2Fchkincs%2Fmeson.build;h=378c2f19ef11f7f582d7366fc6242d23d74467a8;hb=1c015dde95768343ea9788b4e9dd60f8ba7af727;hp=5ffca897612009470fb38a783caca965c3039095;hpb=19415bceb806ade41ea9e55abca155afc842f540;p=dpdk.git diff --git a/buildtools/chkincs/meson.build b/buildtools/chkincs/meson.build index 5ffca89761..378c2f19ef 100644 --- a/buildtools/chkincs/meson.build +++ b/buildtools/chkincs/meson.build @@ -13,18 +13,49 @@ gen_c_files = generator(gen_c_file_for_header, cflags = machine_args cflags += '-DALLOW_EXPERIMENTAL_API' +cflags += '-DALLOW_INTERNAL_API' sources = files('main.c') sources += gen_c_files.process(dpdk_chkinc_headers) -deps = [] +# some driver SDK headers depend on these two buses, which are mandatory in build +# so we always include them in deps list +deps = [get_variable('shared_rte_bus_vdev'), get_variable('shared_rte_bus_pci')] +# add the rest of the libs to the dependencies foreach l:enabled_libs - deps += get_variable('static_rte_' + l) + deps += get_variable('shared_rte_' + l) endforeach executable('chkincs', sources, c_args: cflags, include_directories: includes, dependencies: deps, - link_whole: dpdk_static_libraries + dpdk_drivers, + install: false) + +# run tests for c++ builds also +if not add_languages('cpp', required: false) + subdir_done() +endif + +# check for extern C in files, since this is not detected as an error by the compiler +grep = find_program('grep', required: false) +if grep.found() + errlist = run_command([grep, '--files-without-match', '^extern "C"', dpdk_chkinc_headers], + check: false, capture: true).stdout().split() + if errlist != [] + error('Files missing C++ \'extern "C"\' guards:\n- ' + '\n- '.join(errlist)) + endif +endif + +gen_cpp_files = generator(gen_c_file_for_header, + output: '@BASENAME@.cpp', + arguments: ['@INPUT@', '@OUTPUT@']) + +cpp_sources = files('main.cpp') +cpp_sources += gen_cpp_files.process(dpdk_chkinc_headers) + +executable('chkincs-cpp', cpp_sources, + cpp_args: ['-include', 'rte_config.h', cflags], + include_directories: includes, + dependencies: deps, install: false)