first
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
project('CLI11', ['cpp'],
|
||||
version : run_command(find_program('scripts/ExtractVersion.py'), check: true).stdout().strip(),
|
||||
license : 'BSD-3-clause',
|
||||
meson_version : '>= 1.3',
|
||||
default_options : ['cpp_std=c++17,c++14,c++11', 'warning_level=3']
|
||||
)
|
||||
|
||||
cxx = meson.get_compiler('cpp')
|
||||
|
||||
buildmode = get_option('mode')
|
||||
|
||||
cli11_headers = files(
|
||||
'include/CLI/App.hpp',
|
||||
'include/CLI/Argv.hpp',
|
||||
'include/CLI/CLI.hpp',
|
||||
'include/CLI/Config.hpp',
|
||||
'include/CLI/ConfigFwd.hpp',
|
||||
'include/CLI/Encoding.hpp',
|
||||
'include/CLI/Error.hpp',
|
||||
'include/CLI/Formatter.hpp',
|
||||
'include/CLI/FormatterFwd.hpp',
|
||||
'include/CLI/Macros.hpp',
|
||||
'include/CLI/Option.hpp',
|
||||
'include/CLI/Split.hpp',
|
||||
'include/CLI/StringTools.hpp',
|
||||
'include/CLI/TypeTools.hpp',
|
||||
'include/CLI/Validators.hpp',
|
||||
'include/CLI/ExtraValidators.hpp',
|
||||
'include/CLI/Version.hpp',
|
||||
)
|
||||
|
||||
cli11_impl_headers = files(
|
||||
'include/CLI/impl/App_inl.hpp',
|
||||
'include/CLI/impl/Argv_inl.hpp',
|
||||
'include/CLI/impl/Config_inl.hpp',
|
||||
'include/CLI/impl/Encoding_inl.hpp',
|
||||
'include/CLI/impl/Formatter_inl.hpp',
|
||||
'include/CLI/impl/Option_inl.hpp',
|
||||
'include/CLI/impl/Split_inl.hpp',
|
||||
'include/CLI/impl/StringTools_inl.hpp',
|
||||
'include/CLI/impl/TypeTools_inl.hpp',
|
||||
'include/CLI/impl/Validators_inl.hpp',
|
||||
'include/CLI/impl/ExtraValidators_inl.hpp',
|
||||
)
|
||||
|
||||
cli11_inc = include_directories('include')
|
||||
|
||||
if cxx.get_argument_syntax() == 'gcc'
|
||||
warnings = ['-Wshadow', '-Wsign-conversion', '-Wswitch-enum']
|
||||
if cxx.get_id() == 'gcc' and cxx.version().version_compare('>=4.9')
|
||||
warnings += '-Weffc++'
|
||||
endif
|
||||
if cxx.get_id() == 'clang'
|
||||
warnings += [
|
||||
'-Wcast-align',
|
||||
'-Wmissing-declarations',
|
||||
'-Woverlength-strings',
|
||||
]
|
||||
endif
|
||||
add_project_arguments(cxx.get_supported_arguments(warnings), language: 'cpp')
|
||||
endif
|
||||
|
||||
if buildmode == 'amalgamated'
|
||||
subdir('single-include')
|
||||
|
||||
cli11_dep = declare_dependency(
|
||||
sources: single_header,
|
||||
include_directories : include_directories(meson.current_build_dir() / 'single-include'),
|
||||
)
|
||||
elif buildmode == 'headeronly'
|
||||
install_headers(cli11_headers, subdir: 'CLI')
|
||||
|
||||
pkg = import('pkgconfig', required: false)
|
||||
if pkg.found()
|
||||
pkg.generate(
|
||||
name : 'CLI11',
|
||||
description : 'CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.',
|
||||
url : 'https://github.com/CLIUtils/CLI11',
|
||||
install_dir : get_option('datadir') / 'pkgconfig',
|
||||
)
|
||||
endif
|
||||
|
||||
cli11_dep = declare_dependency(include_directories : cli11_inc)
|
||||
elif buildmode == 'precompiled'
|
||||
cli11_cflags = ['-DCLI11_COMPILE', '-DCLI11_ENABLE_EXTRA_VALIDATORS=1']
|
||||
|
||||
libcli11 = library(
|
||||
'CLI11',
|
||||
'src/Precompile.cpp',
|
||||
include_directories : cli11_inc,
|
||||
cpp_args : cli11_cflags,
|
||||
install : true,
|
||||
)
|
||||
|
||||
pkg = import('pkgconfig', required: false)
|
||||
if pkg.found()
|
||||
pkg.generate(
|
||||
libcli11,
|
||||
description : 'CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.',
|
||||
extra_cflags : cli11_cflags,
|
||||
url : 'https://github.com/CLIUtils/CLI11',
|
||||
)
|
||||
endif
|
||||
|
||||
install_headers(cli11_headers, subdir: 'CLI')
|
||||
|
||||
cli11_dep = declare_dependency(
|
||||
link_with : libcli11,
|
||||
include_directories : cli11_inc,
|
||||
)
|
||||
endif
|
||||
|
||||
meson.override_dependency('CLI11', cli11_dep)
|
||||
|
||||
tests = get_option('tests')
|
||||
catch2_dep = dependency('catch2', required: tests)
|
||||
subdir('tests', if_found: catch2_dep)
|
||||
Reference in New Issue
Block a user