project( 'meson-test', ['cpp', 'c'], version:'0.1', default_options:['warning_level=0', 'cpp_std=c++11', 'c_std=c99'], meson_version: '>=0.61.5' ) # Libraries # libxml2 libxml2_proj = subproject('libxml2', default_options: ['python=false', 'iconv=disabled', 'lzma=disabled', 'zlib=disabled', 'default_library=static']) libxml2_dep = libxml2_proj.get_variable('xml_dep') # poco cmake = import('cmake') opt_var = cmake.subproject_options() opt_var.add_cmake_defines({ 'POCO_STATIC': 'ON', 'ENABLE_MONGODB': 'OFF', 'ENABLE_REDIS': 'OFF', 'ENABLE_DATA_SQLITE': 'OFF', 'ENABLE_DATA_MYSQL': 'OFF', 'ENABLE_DATA_ODBC': 'OFF', 'ENABLE_ZIP': 'OFF', 'ENABLE_PAGECOMPILER': 'OFF', 'ENABLE_PAGECOMPILER_FILE2PAGE': 'OFF', 'CMAKE_POLICY_DEFAULT_CMP0159': 'OLD', 'CMAKE_POLICY_DEFAULT_CMP0156': 'OLD', 'CMAKE_POLICY_DEFAULT_CMP0128': 'OLD', 'CMAKE_POLICY_DEFAULT_CMP0126': 'OLD', }) poco_proj = cmake.subproject('poco', options: opt_var) poco_dep_foundation = poco_proj.dependency(['Foundation']) poco_dep_util = poco_proj.dependency(['Util']) # Include directories incdir = include_directories('include') # Meson template uname = run_command('sh', '-c', 'echo "$(uname -o) $(uname -r)"').stdout().strip() gcc_version = meson.get_compiler('c').version() ninja_version = run_command('ninja', '--version').stdout().strip() host_template = configure_file( input: 'gen/host.cpp.template', output: 'host.cpp', configuration: { 'UNAME': '@0@'.format(uname), 'GCC_VERSION': '@0@'.format(gcc_version), 'NINJA_VERSION': '@0@'.format(ninja_version) } ) # Executable executable('mesontest', host_template, 'src/libxml_meson.cpp', 'src/poco.cpp', 'src/main.cpp', dependencies: [libxml2_dep, poco_dep_foundation, poco_dep_util], include_directories : incdir )