meson-test/meson.build

52 lines
1.9 KiB
Meson

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
)