As pointed out by @sdarwin multiple values in `B2_DEFINES` led to a failing build as the scripts only supported a single value for the "new" var usages.
This is a regression from the old usage where `B2_DEFINES: define=FOO=1 define=BAR=2` could be used.
This is now fixed by a small parser function which generates multiple `define=*` entries and additionally now also supports spaces in the define values.
Same is done for `B2_INCLUDE` which has the same issue.
Also includes the change to the CI script from #177 and an additional test in test.cpp to verify that this works.
Collecting coverage data on Windows is VERY expensive (takes long).
So only do a 64-bit build with latest standard on msvc-14.3 by default.
Library authors can change that if required.
Fix the `AddressSanitizer: alloc-dealloc-mismatch (operator new vs free)` false positive reported by recent Clang with libc++ by reverting to Clang 13.
Fixes#167
When a cache with the key exists it is NOT saved even when changed.
Hence make the key unique to a commit (SHA) and restore the most recent
cache with a key prefixed by the part without the SHA.
* test linkflags
* Fix B2_ARGS for old CI configs
Revert construction of B2_ARGS for unset B2_CI_VERSION to what it was
before the deduplication efforts in #48
* Fix coverage args for old CI configs
Add the prefixes again
* Add multiple define= entries to B2_DEFINES and rename the test job
The error to be reproduced happens only for multiple values, e.g. to B2_LINKFLAGS or B2_DEFINES.
Co-authored-by: Alexander Grund <Flamefire@users.noreply.github.com>
Minimal change to NOT copy the cloned Boost.CI "ci" folder if running in the Boost.CI repo.
This allows to test the current version of the script in PRs, pushes...
Build is done manually by the regular build.sh script. All we need is the setup (setting of CXXFLAGS etc.) and the upload part.
This allows to easily run multiple build runs (e.g. in different configurations)
Closes#94
> In file included from ./boost/boost-ci/boost_ci.hpp:11:
> /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/memory:200:16: error: no member named 'is_constant_evaluated' in namespace 'std'
> if (std::is_constant_evaluated())
> ~~~~~^
Have only a single folder as the test code is the same the only difference is find_package over add_subdirectory.
This avoids having to duplicate 95% of the code and instead focus on better tests.