add meson option to not install library

This commit is contained in:
Michal Bukovský 2024-11-30 20:17:02 +01:00
parent 26b9bcde1f
commit 4cd7c0ed18
No known key found for this signature in database
GPG Key ID: 2015343C36E0B220
2 changed files with 23 additions and 15 deletions

View File

@ -1 +1,2 @@
option('tests', type: 'boolean', value: true, description: 'Build the unit tests') option('tests', type: 'boolean', value: true, description: 'Build the unit tests')
option('install', type: 'boolean', value: true, description: 'Install the library')

View File

@ -16,6 +16,7 @@ configure_file(
format: 'cmake@', format: 'cmake@',
install_dir: get_option('includedir') / 'catch2', install_dir: get_option('includedir') / 'catch2',
configuration: conf_data, configuration: conf_data,
install: get_option('install')
) )
fs = import('fs') fs = import('fs')
@ -339,7 +340,9 @@ foreach file : headers
endif endif
endforeach endforeach
if get_option('install')
install_headers(file, subdir: join_paths(include_subdir, folder)) install_headers(file, subdir: join_paths(include_subdir, folder))
endif
endforeach endforeach
catch2_dependencies = [] catch2_dependencies = []
@ -356,7 +359,7 @@ catch2 = static_library(
sources, sources,
dependencies: catch2_dependencies, dependencies: catch2_dependencies,
include_directories: '..', include_directories: '..',
install: true, install: get_option('install'),
) )
catch2_dep = declare_dependency( catch2_dep = declare_dependency(
@ -364,19 +367,21 @@ catch2_dep = declare_dependency(
include_directories: '..', include_directories: '..',
) )
pkg.generate( if get_option('install')
pkg.generate(
catch2, catch2,
filebase: 'catch2', filebase: 'catch2',
description: 'A modern, C++-native, test framework for C++14 and above', description: 'A modern, C++-native, test framework for C++14 and above',
url: 'https://github.com/catchorg/Catch2', url: 'https://github.com/catchorg/Catch2',
) )
endif
catch2_with_main = static_library( catch2_with_main = static_library(
'Catch2Main', 'Catch2Main',
'internal/catch_main.cpp', 'internal/catch_main.cpp',
link_with: catch2, link_with: catch2,
include_directories: '..', include_directories: '..',
install: true, install: get_option('install'),
) )
catch2_with_main_dep = declare_dependency( catch2_with_main_dep = declare_dependency(
@ -384,9 +389,11 @@ catch2_with_main_dep = declare_dependency(
include_directories: '..', include_directories: '..',
) )
pkg.generate( if get_option('install')
pkg.generate(
catch2_with_main, catch2_with_main,
filebase: 'catch2-with-main', filebase: 'catch2-with-main',
description: 'A modern, C++-native, test framework for C++14 and above (links in default main)', description: 'A modern, C++-native, test framework for C++14 and above (links in default main)',
requires: 'catch2 = ' + meson.project_version(), requires: 'catch2 = ' + meson.project_version(),
) )
endif