Audit MSVC references in cmake files to consider clang++#1669
Merged
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Maetveis
commented
Sep 26, 2023
Maetveis
commented
Sep 26, 2023
There are three major compilers on Windows targeting the MSVC ABI (i.e. linking with microsofts STL etc.): - `MSVC` - `clang-cl` aka clang with the MSVC compatible CLI - `clang++` aka clang with gcc compatible CLI The cmake variable `MSVC` is only set for the first two as it defined in terms of the CLI interface provided: > Set to true when the compiler is some version of Microsoft Visual > C++ or another compiler simulating the Visual C++ cl command-line syntax. (from cmake docs) For many of the tests in the library its the ABI that matters not the cmdline, so check `CMAKE_CXX_SIMULATE_ID` too, if it is `MSVC` the current compiler is targeting the MSVC ABI. This handles `clang++`
Contributor
Author
|
I don't think the sanitizer builds failing are relevant, this shouldn't change anything on Linux and all windows jobs pass. |
Member
agreed. filed #1670 |
dmah42
approved these changes
Sep 26, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
There are three major compilers on Windows targeting the MSVC ABI (i.e. linking with microsofts STL etc.):
MSVCclang-claka clang with the MSVC compatible CLIclang++aka clang with gcc compatible CLIThe cmake variable
MSVCis only set for the first two as it defined in terms of the CLI interface provided:(from cmake docs)
For many of the checks in the library its the ABI that matters not the cmdline, so check
CMAKE_CXX_SIMULATE_IDtoo, if it isMSVCthe current compiler is targeting the MSVC ABI. This handlesclang++Fixes: #1597