mirror of https://github.com/google/benchmark.git
Audit MSVC references in cmake files to consider clang++ (#1669)
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++`
This commit is contained in:
parent
344117638c
commit
c9106a79fa
1
AUTHORS
1
AUTHORS
|
@ -31,6 +31,7 @@ Evgeny Safronov <division494@gmail.com>
|
||||||
Fabien Pichot <pichot.fabien@gmail.com>
|
Fabien Pichot <pichot.fabien@gmail.com>
|
||||||
Federico Ficarelli <federico.ficarelli@gmail.com>
|
Federico Ficarelli <federico.ficarelli@gmail.com>
|
||||||
Felix Homann <linuxaudio@showlabor.de>
|
Felix Homann <linuxaudio@showlabor.de>
|
||||||
|
Gergely Meszaros <maetveis@gmail.com>
|
||||||
Gergő Szitár <szitar.gergo@gmail.com>
|
Gergő Szitár <szitar.gergo@gmail.com>
|
||||||
Google Inc.
|
Google Inc.
|
||||||
Henrique Bucher <hbucher@gmail.com>
|
Henrique Bucher <hbucher@gmail.com>
|
||||||
|
|
|
@ -21,7 +21,7 @@ if(BENCHMARK_FORCE_WERROR)
|
||||||
set(BENCHMARK_ENABLE_WERROR ON)
|
set(BENCHMARK_ENABLE_WERROR ON)
|
||||||
endif(BENCHMARK_FORCE_WERROR)
|
endif(BENCHMARK_FORCE_WERROR)
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT (MSVC OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||||
option(BENCHMARK_BUILD_32_BITS "Build a 32 bit version of the library." OFF)
|
option(BENCHMARK_BUILD_32_BITS "Build a 32 bit version of the library." OFF)
|
||||||
else()
|
else()
|
||||||
set(BENCHMARK_BUILD_32_BITS OFF CACHE BOOL "Build a 32 bit version of the library - unsupported when using MSVC)" FORCE)
|
set(BENCHMARK_BUILD_32_BITS OFF CACHE BOOL "Build a 32 bit version of the library - unsupported when using MSVC)" FORCE)
|
||||||
|
@ -45,7 +45,7 @@ option(BENCHMARK_ENABLE_LIBPFM "Enable performance counters provided by libpfm"
|
||||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||||
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||||
|
|
||||||
if(MSVC)
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
# As of CMake 3.18, CMAKE_SYSTEM_PROCESSOR is not set properly for MSVC and
|
# As of CMake 3.18, CMAKE_SYSTEM_PROCESSOR is not set properly for MSVC and
|
||||||
# cross-compilation (e.g. Host=x86_64, target=aarch64) requires using the
|
# cross-compilation (e.g. Host=x86_64, target=aarch64) requires using the
|
||||||
# undocumented, but working variable.
|
# undocumented, but working variable.
|
||||||
|
@ -66,7 +66,7 @@ function(should_enable_assembly_tests)
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (MSVC)
|
if (MSVC OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
|
||||||
return()
|
return()
|
||||||
elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||||
return()
|
return()
|
||||||
|
@ -128,7 +128,7 @@ if (BENCHMARK_BUILD_32_BITS)
|
||||||
add_required_cxx_compiler_flag(-m32)
|
add_required_cxx_compiler_flag(-m32)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
|
||||||
set(BENCHMARK_CXX_STANDARD 14)
|
set(BENCHMARK_CXX_STANDARD 14)
|
||||||
else()
|
else()
|
||||||
set(BENCHMARK_CXX_STANDARD 11)
|
set(BENCHMARK_CXX_STANDARD 11)
|
||||||
|
|
|
@ -51,6 +51,7 @@ Fanbo Meng <fanbo.meng@ibm.com>
|
||||||
Federico Ficarelli <federico.ficarelli@gmail.com>
|
Federico Ficarelli <federico.ficarelli@gmail.com>
|
||||||
Felix Homann <linuxaudio@showlabor.de>
|
Felix Homann <linuxaudio@showlabor.de>
|
||||||
Geoffrey Martin-Noble <gcmn@google.com> <gmngeoffrey@gmail.com>
|
Geoffrey Martin-Noble <gcmn@google.com> <gmngeoffrey@gmail.com>
|
||||||
|
Gergely Meszaros <maetveis@gmail.com>
|
||||||
Gergő Szitár <szitar.gergo@gmail.com>
|
Gergő Szitár <szitar.gergo@gmail.com>
|
||||||
Hannes Hauswedell <h2@fsfe.org>
|
Hannes Hauswedell <h2@fsfe.org>
|
||||||
Henrique Bucher <hbucher@gmail.com>
|
Henrique Bucher <hbucher@gmail.com>
|
||||||
|
|
|
@ -183,7 +183,7 @@ compile_output_test(memory_manager_test)
|
||||||
add_test(NAME memory_manager_test COMMAND memory_manager_test --benchmark_min_time=0.01s)
|
add_test(NAME memory_manager_test COMMAND memory_manager_test --benchmark_min_time=0.01s)
|
||||||
|
|
||||||
# MSVC does not allow to set the language standard to C++98/03.
|
# MSVC does not allow to set the language standard to C++98/03.
|
||||||
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
if(NOT (MSVC OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"))
|
||||||
compile_benchmark_test(cxx03_test)
|
compile_benchmark_test(cxx03_test)
|
||||||
set_target_properties(cxx03_test
|
set_target_properties(cxx03_test
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
|
|
Loading…
Reference in New Issue