80 lines
2.3 KiB
Diff
80 lines
2.3 KiB
Diff
diff --git a/CMake/AbseilDll.cmake b/CMake/AbseilDll.cmake
|
|
index 32cc28f..e51d6df 100644
|
|
--- a/CMake/AbseilDll.cmake
|
|
+++ b/CMake/AbseilDll.cmake
|
|
@@ -699,31 +699,44 @@ set(ABSL_INTERNAL_TEST_DLL_TARGETS
|
|
|
|
include(CheckCXXSourceCompiles)
|
|
|
|
-check_cxx_source_compiles(
|
|
- [==[
|
|
-#ifdef _MSC_VER
|
|
-# if _MSVC_LANG < 201703L
|
|
-# error "The compiler defaults or is configured for C++ < 17"
|
|
-# endif
|
|
-#elif __cplusplus < 201703L
|
|
-# error "The compiler defaults or is configured for C++ < 17"
|
|
-#endif
|
|
-int main() { return 0; }
|
|
-]==]
|
|
+message(WARNING "ABSL_CXX_STANDARD: ${ABSL_CXX_STANDARD}")
|
|
+message(WARNING "CMAKE_CXX_STANDARD: ${CMAKE_CXX_STANDARD}")
|
|
+message(WARNING "CMAKE_CXX_STANDARD_REQUIRED: ${CMAKE_CXX_STANDARD_REQUIRED}")
|
|
+message(WARNING "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
|
|
+
|
|
+if(CMAKE_CXX_STANDARD GREATER_EQUAL 17)
|
|
+ set(ABSL_INTERNAL_AT_LEAST_CXX17 TRUE)
|
|
+else()
|
|
+ check_cxx_source_compiles(
|
|
+ [==[
|
|
+ #ifdef _MSC_VER
|
|
+ # if _MSVC_LANG < 201703L
|
|
+ # error "The compiler defaults or is configured for C++ < 17"
|
|
+ # endif
|
|
+ #elif __cplusplus < 201703L
|
|
+ # error "The compiler defaults or is configured for C++ < 17"
|
|
+ #endif
|
|
+ int main() { return 0; }
|
|
+ ]==]
|
|
ABSL_INTERNAL_AT_LEAST_CXX17)
|
|
+endif()
|
|
|
|
-check_cxx_source_compiles(
|
|
- [==[
|
|
-#ifdef _MSC_VER
|
|
-# if _MSVC_LANG < 202002L
|
|
-# error "The compiler defaults or is configured for C++ < 20"
|
|
-# endif
|
|
-#elif __cplusplus < 202002L
|
|
-# error "The compiler defaults or is configured for C++ < 20"
|
|
-#endif
|
|
-int main() { return 0; }
|
|
-]==]
|
|
+if(CMAKE_CXX_STANDARD GREATER_EQUAL 20)
|
|
+ set(ABSL_INTERNAL_AT_LEAST_CXX20 TRUE)
|
|
+else()
|
|
+ check_cxx_source_compiles(
|
|
+ [==[
|
|
+ #ifdef _MSC_VER
|
|
+ # if _MSVC_LANG < 202002L
|
|
+ # error "The compiler defaults or is configured for C++ < 20"
|
|
+ # endif
|
|
+ #elif __cplusplus < 202002L
|
|
+ # error "The compiler defaults or is configured for C++ < 20"
|
|
+ #endif
|
|
+ int main() { return 0; }
|
|
+ ]==]
|
|
ABSL_INTERNAL_AT_LEAST_CXX20)
|
|
+endif()
|
|
|
|
if(ABSL_INTERNAL_AT_LEAST_CXX20)
|
|
set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_20)
|
|
@@ -731,6 +744,7 @@ elseif(ABSL_INTERNAL_AT_LEAST_CXX17)
|
|
set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_17)
|
|
else()
|
|
set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_14)
|
|
+ message(FATAL_ERROR "Should not pass here !!!")
|
|
endif()
|
|
|
|
function(absl_internal_dll_contains)
|