# 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