diff options
Diffstat (limited to 'cli/build')
-rw-r--r-- | cli/build/root.build | 54 |
1 files changed, 18 insertions, 36 deletions
diff --git a/cli/build/root.build b/cli/build/root.build index c611c4f..ceeaf6c 100644 --- a/cli/build/root.build +++ b/cli/build/root.build @@ -1,24 +1,17 @@ # file : build/root.build # license : MIT; see accompanying LICENSE file -# Regenerate the options parsing code (included into the repository). +# Note that we cannot install the development build. This is due to both the +# bootstrap cli (which we need to run) and the final cli (which we need to +# install) depending on libcutl (so we need it to be both "for-install" and +# "for-run"). Nor can we run such final cli to generate the man pages. # -# 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 +config [bool] config.cli.develop ?= false + +develop = $config.cli.develop + +define cli: file +cli{*}: extension = cli cxx.std = latest @@ -35,26 +28,15 @@ if ($cxx.target.system == 'win32-msvc') 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. +# Specify the test target for cross-testing. # -if ($config.cli != [null] && $config.cli != false) - using cli +test.target = $cxx.target -# All exe{} in unit-tests/ are, well, tests. Also don't link whole archives -# by default there. +# Extract the copyright notice from the LICENSE file. # -unit-tests/exe{*}: test = true -unit-tests/{libue libul}{*}: bin.whole = false - -# Specify the test target for cross-testing. +# Note that cat is a builtin which means this is both portable and fast. # -test.target = $cxx.target +if ($build.mode != 'skeleton') + copyright = $process.run_regex(cat $src_root/LICENSE, \ + 'Copyright \(c\) (.+)\.', \ + '\1') |