Fix compilation with clang on Windows. #209
Open
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.
Description
This change addresses an issue where compilation fails on Windows with Clang due to unknown options "/W4 /WX" being passed to the Clang compiler.
The solution
The rationale behind this change is that
CMAKE_CXX_SIMULATE_ID
is intended to specify only the ABI of the compiler, whereasCMAKE_CXX_COMPILER_FRONTEND_VARIANT
is used to specify the command-line argument style. By usingCMAKE_CXX_COMPILER_FRONTEND_VARIANT
, we ensure that the correct options are passed to the Clang compiler on Windows, resolving the compilation failure.For both clang.exe and clang-cl.exe
CMAKE_CXX_SIMULATE_ID
is defined as MVSC, butCMAKE_CXX_COMPILER_FRONTEND_VARIANT
is defined "GNU" in first case and "MVSC" in second.