build(header_install_dir): added header_install_dir option

this is useful for wheel builds
This commit is contained in:
2026-06-11 09:36:34 -04:00
parent 898c5285da
commit 92795f8f5a
7 changed files with 17 additions and 13 deletions

View File

@@ -48,7 +48,7 @@ PROJECT_NAME = libconfig
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = v2.2.7
PROJECT_NUMBER = v2.2.8
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewers a

View File

@@ -4,5 +4,5 @@ cli11_dep = cli11_proj.get_variable('CLI11_dep')
cli11_headers = cli11_proj.get_variable('cli11_headers')
cli11_impl_headers = cli11_proj.get_variable('cli11_impl_headers')
install_headers(cli11_headers, subdir: 'fourdst/vendor/CLI')
install_headers(cli11_impl_headers, subdir: 'fourdst/vendor/CLI/impl')
install_headers(cli11_headers, install_dir: config_header_root / 'fourdst' / 'vendor' / 'CLI')
install_headers(cli11_impl_headers, install_dir: config_header_root / 'fourdst' / 'vendor' / 'CLI' / 'impl')

View File

@@ -33,6 +33,6 @@ reflect_cpp_dep = declare_dependency(
install_subdir(
'include',
install_dir: get_option('includedir') / 'fourdst' / 'vendor',
strip_directory: true
install_dir: config_header_root / 'fourdst' / 'vendor',
strip_directory: true,
)

View File

@@ -2,8 +2,7 @@ tomlpp_inc_dir = include_directories('vendor/include')
install_subdir(
'vendor/include',
install_dir: get_option('includedir') / 'fourdst' / 'vendor',
strip_directory: true
install_dir: config_header_root / 'fourdst' / 'vendor',
strip_directory: true,
exclude_files: ['meson.build'],
)

View File

@@ -18,11 +18,15 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# *********************************************************************** #
project('libconfig', ['cpp', 'c'], version: 'v2.2.7', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
project('libconfig', ['cpp', 'c'], version: 'v2.2.8', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
# Add default visibility for all C++ targets
add_project_arguments('-fvisibility=default', language: 'cpp')
config_header_root = get_option('header_install_dir') != '' \
? get_option('header_install_dir') \
: get_option('includedir')
cpp = meson.get_compiler('cpp')
subdir('build-config')
subdir('src')

View File

@@ -1,5 +1,6 @@
option('pkg_config', type: 'boolean', value: true, description: 'generate pkg-config file for libconfig (fourdst_config.pc)')
option('build_tests', type: 'boolean', value: true, description: 'Build unit and integration tests (uses gtest)')
option('build_examples', type: 'boolean', value: true, description: 'Build simple example programs')
option('lib_install_dir', type: 'string', value: '', description: 'Override install dir for the shared library (used by the fourdst umbrella to place libs inside the Python package in wheel builds). Empty = default libdir.'):w
option('lib_install_dir', type: 'string', value: '', description: 'Override install dir for the shared library (used by the fourdst umbrella to place libs inside the Python package in wheel builds). Empty = default libdir.')
option('header_install_dir', type: 'string', value: '', description: 'Override the header install root (used by the fourdst umbrella to place headers inside the Python package in wheel builds). Empty = default includedir.')

View File

@@ -13,10 +13,10 @@ config_headers = files(
'include/fourdst/config/ansi.h',
'include/fourdst/config/validate.h',
)
install_headers(config_headers, subdir : 'fourdst/config')
config_exception_headers = files(
'include/fourdst/config/exceptions/exceptions.h',
)
install_headers(config_exception_headers, subdir : 'fourdst/config/exceptions')
install_headers(config_headers, install_dir: config_header_root / 'fourdst' / 'config')
install_headers(config_exception_headers, install_dir: config_header_root / 'fourdst' / 'config' / 'exceptions')