[build2] Constraining the C++ standard

Fabian Meyer fabian.meyer at posteo.de
Thu Jul 6 19:46:11 UTC 2023


Just one note:  libcxxopts is already published on cppget

https://cppget.org/libcxxopts?q=cxxopt

I think I just did not port the tests because of the autoptr problem you have. I only ported the examples.

Cheers
Fabian

06.07.2023 17:05:23 Boris Kolpackov via users <users at build2.org>:

> lyrahgames via users <users at build2.org> writes:
> 
>> I constrained the standard to C++14 with 'cxx.std = c++14' in the
>> 'root.build' of the tests package.
> 
> This should be:
> 
> cxx.std = 14
> 
> 
>> The header-only library package itself still sets 'cxx.std = latest' to not
>> constrain anything else. As the tests will never be a dependency of any
>> other project, I thougt this should be ok.
> 
> It's not ideal but probably ok. It's not ideal because the library is
> tested with the standard other than what it will be used with.
> 
> 
>> However, building on Windows with MSVC the builds fail already in the
>> configuration step with the compiler complaining about an unsupported
>> C++ standard 'C++c++14':
>> 
>> "error: C++c++14 is not supported by Microsoft (R) C/C++ Optimizing Compiler
>> Version 19.36.32534 for x64"
> 
> That's because you've specified c++14 rather than 14 in cxx.std.
> 
> 
>> Also, what should I do if a library that is not binless only compiles
>> with a specific older standard but not with the latest one, as it is
>> for ChaiScript:
>> 
>> https://github.com/build2-packaging/chaiscript
>> 
>> As I got it from the manual, there might be ABI-breaking changes between
>> standards. For now, I constrained the standard to C++17 for ChaiScript as
>> it was the only thing I could think of, still, constraining the builds to
>> GCC and Clang and possibly breaking ABI across different projects.
> 
> Yeah, I don't think there is anything else you can do about this (other
> that dropping the library altogether). Maybe add a warning to the README
> that the library is always built with C++17 and whether it will work in
> a mixed-standard environment is anyones' guess.



More information about the users mailing list