diff options
author | Abseil Team <absl-team@google.com> | 2022-10-31 11:20:42 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-10-31 11:21:32 -0700 |
commit | ea882fb76637f00e9a547ce1c6c42cd90a7f955b (patch) | |
tree | c8387608e82fb29776f47ccdf0bb1ad96ce3f8a5 /CMake/AbseilHelpers.cmake | |
parent | f5fd4cc7ebdb05995b9c7399d9a091efdc1dc738 (diff) |
CMake: installed artifacts reflect the compiled ABI
In a previous change, I forgot to fix the DLLs to
also set the target_compile_features() as needed.
Some amount of refactoring to expose the necessary
variables and functions in AbseilDll.cmake
Fixes #1116
PiperOrigin-RevId: 485101834
Change-Id: I5cd0eff9e20c0ddf48c364f917e40d66df0aac17
Diffstat (limited to 'CMake/AbseilHelpers.cmake')
-rw-r--r-- | CMake/AbseilHelpers.cmake | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake index 6d402872..8e08d3fc 100644 --- a/CMake/AbseilHelpers.cmake +++ b/CMake/AbseilHelpers.cmake @@ -32,35 +32,6 @@ else() set(ABSL_INTERNAL_INCLUDE_WARNING_GUARD "") endif() -function(_absl_target_compile_features_if_available TARGET TYPE FEATURE) - if(FEATURE IN_LIST CMAKE_CXX_COMPILE_FEATURES) - target_compile_features(${TARGET} ${TYPE} ${FEATURE}) - else() - message(WARNING "Feature ${FEATURE} is unknown for the CXX compiler") - endif() -endfunction() - -include(CheckCXXSourceCompiles) - -check_cxx_source_compiles( - [==[ -#ifdef _MSC_VER -# if _MSVC_LANG < 201700L -# error "The compiler defaults or is configured for C++ < 17" -# endif -#elif __cplusplus < 201700L -# error "The compiler defaults or is configured for C++ < 17" -#endif -int main() { return 0; } -]==] - ABSL_INTERNAL_AT_LEAST_CXX17) - -if(ABSL_INTERNAL_AT_LEAST_CXX17) - set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_17) -else() - set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_14) -endif() - # absl_cc_library() # # CMake function to imitate Bazel's cc_library rule. @@ -297,9 +268,9 @@ Cflags: -I\${includedir}${PC_CFLAGS}\n") endif() if(ABSL_PROPAGATE_CXX_STD) - # Abseil libraries require C++14 as the current minimum standard. - # Top-level application CMake projects should ensure a consistent C++ - # standard for all compiled sources by setting CMAKE_CXX_STANDARD. + # Abseil libraries require C++14 as the current minimum standard. When + # compiled with C++17 (either because it is the compiler's default or + # explicitly requested), then Abseil requires C++17. _absl_target_compile_features_if_available(${_NAME} PUBLIC ${ABSL_INTERNAL_CXX_STD_FEATURE}) else() # Note: This is legacy (before CMake 3.8) behavior. Setting the |