Enable Conan compiler.cppstd to override nmos-cpp's preferred CMAKE_CXX_STANDARD #207
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #206. Follow up to #108.
The change made in commit edd8962 enabled the user to override nmos-cpp's preferred
CMAKE_CXX_STANDARD
on the CMake command line by setting that variable into the cache.More recently, we introduced a Conan recipe, with packages published at Conan Center Index. @pedro-alves-ferreira noticed that specifying
compiler.cppstd=17
(as in How to manage C++ standard) was ignored on the first build.This turns out to be because Conan sets
CMAKE_CXX_STANDARD
as a "normal" variable, and on first run, the current CMake behaviour is that setting it as a cache variable removes the normal variable. Using idiomatic existence checks on all theCMAKE_CXX_
variables instead is the right way to solve this issue.This could be artificially demonstrated in GitHub Actions, but I haven't gone that far with this PR.
Once it's merged, there will still need to be a new Conan package version published.