From 2b8a4bd60fcc8c18e43892c1cbae0a8993d37fa9 Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Fri, 5 Jun 2026 11:36:42 +0200 Subject: [PATCH] build(vendor): vendor libraries now install in a dedicated directory We now install vendor libraries into includedir/fourdst/vendor to avoid conflicts with user installed libraries. Note that currently this only applies to headers and not compiled shared libraries BREAKING CHANGE: --- build-config/CLI11/meson.build | 8 +++++++- build-config/reflect-cpp/meson.build | 2 +- build-config/tomlpp/meson.build | 2 +- meson.build | 6 +++++- src/config/meson.build | 5 ++++- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/build-config/CLI11/meson.build b/build-config/CLI11/meson.build index a8549f3..caa6618 100644 --- a/build-config/CLI11/meson.build +++ b/build-config/CLI11/meson.build @@ -1,2 +1,8 @@ cli11_proj = subproject('cli11') -cli11_dep = cli11_proj.get_variable('CLI11_dep') \ No newline at end of file +cli11_dep = cli11_proj.get_variable('CLI11_dep') + +install_subdir( + meson.project_source_root() / 'subprojects' / 'CLI11-2.6.1' / 'include', + install_dir: get_option('includedir') / 'fourdst' / 'vendor', + strip_directory: true +) \ No newline at end of file diff --git a/build-config/reflect-cpp/meson.build b/build-config/reflect-cpp/meson.build index dc5cf18..e576b81 100644 --- a/build-config/reflect-cpp/meson.build +++ b/build-config/reflect-cpp/meson.build @@ -32,6 +32,6 @@ reflect_cpp_dep = declare_dependency( install_subdir( 'include', - install_dir: get_option('includedir'), + install_dir: get_option('includedir') / 'fourdst' / 'vendor', strip_directory: true ) diff --git a/build-config/tomlpp/meson.build b/build-config/tomlpp/meson.build index a99770b..3553417 100644 --- a/build-config/tomlpp/meson.build +++ b/build-config/tomlpp/meson.build @@ -2,6 +2,6 @@ tomlpp_dep = dependency('tomlplusplus', required: true, static: true).as_system( install_subdir( meson.project_source_root() / 'subprojects' / 'tomlplusplus-3.4.0' / 'include', - install_dir: get_option('includedir'), + install_dir: get_option('includedir') / 'fourdst' / 'vendor', strip_directory: true ) \ No newline at end of file diff --git a/meson.build b/meson.build index ce6634e..c1fbb1a 100644 --- a/meson.build +++ b/meson.build @@ -37,6 +37,9 @@ endif if get_option('pkg_config') message('Generating pkg-config file for libconfig...') + + vendor_inc_flags = '-I${includedir}' / 'fourdst' / 'vendor' + pkg = import('pkgconfig') pkg.generate( name: 'libconfig', @@ -44,6 +47,7 @@ if get_option('pkg_config') version: meson.project_version(), libraries: [reflect_cpp_library], filebase: 'fourdst_config', - install_dir: join_paths(get_option('libdir'), 'pkgconfig') + install_dir: join_paths(get_option('libdir'), 'pkgconfig'), + extra_cflags: vendor_inc_flags ) endif diff --git a/src/config/meson.build b/src/config/meson.build index 2c71dfe..86f1068 100644 --- a/src/config/meson.build +++ b/src/config/meson.build @@ -1,5 +1,8 @@ config_dep = declare_dependency( - include_directories: include_directories('include'), + include_directories: [ + include_directories('include'), + include_directories('include/fourdst/config'), + ], dependencies: [reflect_cpp_dep], )