From 720c5a33b6a49cf328fdd7611f49153cf8f60247 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 8 Apr 2020 14:51:57 +0300 Subject: Separate tests and examples into individual packages Also make cli module to be explicitly enabled via the config.cli configuration variable. --- cli/build/root.build | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 cli/build/root.build (limited to 'cli/build/root.build') diff --git a/cli/build/root.build b/cli/build/root.build new file mode 100644 index 0000000..c611c4f --- /dev/null +++ b/cli/build/root.build @@ -0,0 +1,60 @@ +# file : build/root.build +# license : MIT; see accompanying LICENSE file + +# Regenerate the options parsing code (included into the repository). +# +# Note that this is the same variable as what's used by the import machinery +# when we import cli%exe{cli}. Here, however, we require it to be explicitly +# specified (i.e., no default search in PATH) in order for the regeneration +# to be enabled. +# +# Normally, in the development build, this variable will be set only in the +# cli package configuration to point to its own binary (or a binary in another +# build configuration if you want to play it safe). +# +# Note, though, that currently referring to the cli target in the project +# itself ends up with the 'dependency cycle detected' error. In the future we +# will fix that by using an ad hoc recipe instead of the cli module. But for +# now you can workaround this issue by pointing to a binary in another +# configuration. +# +config [path] config.cli + +cxx.std = latest + +using cxx + +hxx{*}: extension = hxx +ixx{*}: extension = ixx +txx{*}: extension = txx +cxx{*}: extension = cxx + +if ($cxx.target.system == 'win32-msvc') + cxx.poptions += -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS + +if ($cxx.class == 'msvc') + cxx.coptions += /wd4251 /wd4275 /wd4800 + +cxx.poptions =+ "-I$out_root" "-I$src_root" + +# Load the cli module only if explicitly requested. This way a distribution +# that includes pre-generated files can be built without installing cli. This +# is also the reason why we need to explicitly spell out individual source +# file prerequisites instead of using the cli.cxx{} group (it won't be there +# unless the module is configured). +# +# @@ Replace with import when the parsing code regenerating is implemented +# via an ad hoc recipe. +# +if ($config.cli != [null] && $config.cli != false) + using cli + +# All exe{} in unit-tests/ are, well, tests. Also don't link whole archives +# by default there. +# +unit-tests/exe{*}: test = true +unit-tests/{libue libul}{*}: bin.whole = false + +# Specify the test target for cross-testing. +# +test.target = $cxx.target -- cgit v1.1