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/.gitignore | 3 +++ cli/build/bootstrap.build | 10 ++++++++ cli/build/export.build | 9 +++++++ cli/build/root.build | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 cli/build/.gitignore create mode 100644 cli/build/bootstrap.build create mode 100644 cli/build/export.build create mode 100644 cli/build/root.build (limited to 'cli/build') diff --git a/cli/build/.gitignore b/cli/build/.gitignore new file mode 100644 index 0000000..e931f20 --- /dev/null +++ b/cli/build/.gitignore @@ -0,0 +1,3 @@ +config.build +root/ +bootstrap/ \ No newline at end of file diff --git a/cli/build/bootstrap.build b/cli/build/bootstrap.build new file mode 100644 index 0000000..1e5c8a4 --- /dev/null +++ b/cli/build/bootstrap.build @@ -0,0 +1,10 @@ +# file : build/bootstrap.build +# license : MIT; see accompanying LICENSE file + +project = cli + +using version +using config +using dist +using test +using install diff --git a/cli/build/export.build b/cli/build/export.build new file mode 100644 index 0000000..92c546c --- /dev/null +++ b/cli/build/export.build @@ -0,0 +1,9 @@ +# file : build/export.build +# license : MIT; see accompanying LICENSE file + +$out_root/ +{ + include cli/ +} + +export $out_root/cli/exe{cli} 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