first
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
if catch2_dep.version().version_compare('< 3')
|
||||
testmain = static_library(
|
||||
'catch_main',
|
||||
'main.cpp', 'catch.hpp',
|
||||
dependencies: catch2_dep,
|
||||
)
|
||||
testdep = declare_dependency(
|
||||
link_with: testmain,
|
||||
dependencies: [catch2_dep, cli11_dep]
|
||||
)
|
||||
else
|
||||
testdep = declare_dependency(
|
||||
dependencies: [cli11_dep, dependency('catch2-with-main')],
|
||||
compile_args: '-DCLI11_CATCH3'
|
||||
)
|
||||
endif
|
||||
|
||||
link_test_lib = static_library(
|
||||
'link_test_1',
|
||||
'link_test_1.cpp',
|
||||
dependencies: cli11_dep,
|
||||
build_by_default: false,
|
||||
)
|
||||
|
||||
if cxx.get_argument_syntax() == 'msvc'
|
||||
nodeprecated = ['/wd4996']
|
||||
else
|
||||
nodeprecated = ['-Wno-deprecated-declarations']
|
||||
endif
|
||||
|
||||
boost_dep = dependency('boost', required: false, disabler: true)
|
||||
if boost_dep.found()
|
||||
boost_dep = declare_dependency(
|
||||
dependencies: boost_dep,
|
||||
compile_args: '-DCLI11_BOOST_OPTIONAL',
|
||||
)
|
||||
maybe_boost_dep = boost_dep
|
||||
else
|
||||
maybe_boost_dep = declare_dependency()
|
||||
endif
|
||||
|
||||
testnames = {
|
||||
'HelpersTest': {'workdir': meson.project_build_root()},
|
||||
'ConfigFileTest': {},
|
||||
'OptionTypeTest': {},
|
||||
'NumericTypeTest': {},
|
||||
'SimpleTest': {},
|
||||
'AppTest': {},
|
||||
'SetTest': {},
|
||||
'TransformTest': {},
|
||||
'CreationTest': {},
|
||||
'SubcommandTest': {},
|
||||
'HelpTest': {},
|
||||
'FormatterTest': {},
|
||||
'NewParseTest': {},
|
||||
'OptionalTest': {'dependencies': maybe_boost_dep},
|
||||
'BoostOptionTypeTest': {'dependencies': boost_dep},
|
||||
'DeprecatedTest': {'cpp_args': nodeprecated},
|
||||
'StringParseTest': {},
|
||||
'ComplexTypeTest': {},
|
||||
'TrueFalseTest': {},
|
||||
'localeTest': {},
|
||||
'OptionGroupTest': {},
|
||||
'ExtraValidatorsTest': {},
|
||||
'EncodingTest': {},
|
||||
'WindowsTest': {'dependencies': host_machine.system() == 'windows' ? declare_dependency() : disabler()},
|
||||
# multi-only
|
||||
'TimerTest': {},
|
||||
# link_test
|
||||
'link_test_2': {'link_with': link_test_lib},
|
||||
}
|
||||
|
||||
fs = import('fs')
|
||||
app_cfgdata = configuration_data()
|
||||
app_cflags = []
|
||||
app_tgts = []
|
||||
foreach app: ['ensure_utf8', 'ensure_utf8_twice']
|
||||
app_tgt = executable(
|
||||
app, 'applications'/app + '.cpp',
|
||||
dependencies: cli11_dep,
|
||||
build_by_default: false,
|
||||
)
|
||||
app_cfgdata.set_quoted(app, fs.relative_to(app_tgt.full_path(), meson.current_build_dir()))
|
||||
app_cflags += '-DCLI11_@0@_EXE=@1@'.format(app.to_upper(), app_cfgdata.get(app))
|
||||
app_tgts += app_tgt
|
||||
endforeach
|
||||
|
||||
foreach name, kwargs: testnames
|
||||
test(name, executable(name, name + '.cpp',
|
||||
cpp_args: app_cflags + kwargs.get('cpp_args', []),
|
||||
build_by_default: false,
|
||||
dependencies: [testdep] + kwargs.get('dependencies', []),
|
||||
link_with: kwargs.get('link_with', [])
|
||||
), depends: app_tgts, workdir: kwargs.get('workdir', meson.current_build_dir()))
|
||||
endforeach
|
||||
Reference in New Issue
Block a user