43 lines
1.1 KiB
Meson
43 lines
1.1 KiB
Meson
cmake = import('cmake')
|
|
yaml_cpp_cmake_options = cmake.subproject_options()
|
|
|
|
yaml_cpp_cmake_options.add_cmake_defines({
|
|
'BUILD_SHARED_LIBS': 'OFF',
|
|
'BUILD_STATIC_LIBS': 'ON',
|
|
'YAML_CPP_BUILD_TESTS': 'OFF',
|
|
'CMAKE_CXX_FLAGS': '-Wno-shadow',
|
|
'CMAKE_C_FLAGS': '-Wno-shadow',
|
|
'CMAKE_INSTALL_LIBDIR': get_option('libdir'),
|
|
'CMAKE_INSTALL_INCLUDEDIR': get_option('includedir'),
|
|
'CMAKE_POLICY_VERSION_MINIMUM': '3.5',
|
|
'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'
|
|
})
|
|
|
|
yaml_cpp_sp = cmake.subproject(
|
|
'yaml-cpp',
|
|
options: yaml_cpp_cmake_options,
|
|
)
|
|
|
|
|
|
yaml_cpp_tgt = yaml_cpp_sp.target('yaml-cpp')
|
|
yaml_cpp_inc = yaml_cpp_sp.include_directories('yaml-cpp')
|
|
empty_yaml_cpp_file = configure_file(
|
|
output: 'yaml_cpp_dummy_ar.cpp',
|
|
command: ['echo'],
|
|
capture: true
|
|
)
|
|
libyaml_static = static_library(
|
|
'yaml_cpp-static',
|
|
empty_yaml_cpp_file,
|
|
objects: [yaml_cpp_tgt.extract_all_objects(recursive: true)],
|
|
include_directories: yaml_cpp_inc,
|
|
pic: true,
|
|
install: false
|
|
)
|
|
|
|
|
|
yaml_cpp_dep = declare_dependency(
|
|
link_with: libyaml_static,
|
|
include_directories: yaml_cpp_inc,
|
|
)
|