Skip to content

Commit 703b7f4

Browse files
samanghquicknir
authored andcommittedFeb 25, 2021
Check support for C++17 in a platform-agnostic manner
1 parent 6450f9c commit 703b7f4

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed
 

‎test/CMakeLists.txt

+16-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,25 @@ enable_testing()
44

55
include(CheckCXXSourceCompiles)
66

7+
# report an updated value for recent C++ language standards support. By
8+
# default, Visual Studio always returns the value "199711L" for the
9+
# __cplusplus preprocessor macro.
10+
if(MSVC)
11+
string(APPEND CMAKE_CXX_FLAGS " /Zc:__cplusplus")
12+
endif()
13+
714
set(OLD_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
8-
set(CMAKE_REQUIRED_FLAGS -std=c++17)
15+
if(MSVC)
16+
set(CMAKE_REQUIRED_FLAGS /std:c++17)
17+
else()
18+
set(CMAKE_REQUIRED_FLAGS -std=c++17)
19+
endif()
20+
921
check_cxx_source_compiles("
1022
#include <string_view>
1123
#include <type_traits>
1224
int main() { return std::is_same_v<std::string_view, int>; }" CAN_COMPILE_17)
25+
1326
set(CMAKE_REQUIRED_FLAGS "${OLD_CMAKE_REQUIRED_FLAGS}")
1427

1528
if (EXISTS ${CMAKE_BINARY_DIR}/conan_paths.cmake)
@@ -22,7 +35,7 @@ find_package(Catch2 REQUIRED)
2235
if (CAN_COMPILE_17)
2336
add_executable(wise_enum_test test_main.cpp cxx17.cpp)
2437
target_compile_features(wise_enum_test PRIVATE cxx_std_17)
25-
target_include_directories(wise_enum_test PRIVATE ..)
38+
target_include_directories(wise_enum_test PRIVATE ${CMAKE_CURRENT_LIST_DIR}/..)
2639
else ()
2740
add_executable(wise_enum_test test_main.cpp)
2841
endif ()
@@ -31,7 +44,7 @@ target_link_libraries(wise_enum_test PRIVATE Catch2::Catch2)
3144
add_executable(wise_enum_test14 test_main.cpp cxx14.cpp)
3245
target_compile_features(wise_enum_test14 PRIVATE cxx_std_14)
3346
target_link_libraries(wise_enum_test14 PRIVATE Catch2::Catch2)
34-
target_include_directories(wise_enum_test14 PRIVATE ..)
47+
target_include_directories(wise_enum_test14 PRIVATE ${CMAKE_CURRENT_LIST_DIR}/..)
3548

3649
add_test(NAME wise_enum.unit_tests COMMAND wise_enum_test)
3750
add_test(NAME wise_enum.unit_tests14 COMMAND wise_enum_test14)

0 commit comments

Comments
 (0)
Please sign in to comment.