mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-30 18:09:01 +08:00
9b72cad7f0
* [abseil] Re-fix cxx 17 standard, add macro ABSL_USE_CXX17 to `absl-config.cmake` * [grpc] Fix build failure when abseil use cxx 17 standard * Update ports/abseil/portfile.cmake
97 lines
2.8 KiB
Diff
97 lines
2.8 KiB
Diff
diff --git a/CMake/abslConfig.cmake.in b/CMake/abslConfig.cmake.in
|
|
index 62d246d..00947cf 100644
|
|
--- a/CMake/abslConfig.cmake.in
|
|
+++ b/CMake/abslConfig.cmake.in
|
|
@@ -6,3 +6,5 @@ find_dependency(Threads)
|
|
@PACKAGE_INIT@
|
|
|
|
include ("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
|
+
|
|
+set(ABSL_USE_CXX17 @ABSL_USE_CXX17@)
|
|
\ No newline at end of file
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index f0af6f6..927f4ed 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -57,6 +57,23 @@ else()
|
|
option(ABSL_ENABLE_INSTALL "Enable install rule" ON)
|
|
endif()
|
|
|
|
+# CXX standard
|
|
+option(ABSL_USE_CXX17 "Enable CXX 17 standard" OFF)
|
|
+
|
|
+if (ABSL_USE_CXX17)
|
|
+ set(CMAKE_CXX_STANDARD 17)
|
|
+ set(STD_ANY 1)
|
|
+ set(STD_OPTIONAL 1)
|
|
+ set(STD_STRING_VIEW 1)
|
|
+ set(STD_VARIANT 1)
|
|
+else()
|
|
+ set(CMAKE_CXX_STANDARD 11)
|
|
+ set(STD_ANY 0)
|
|
+ set(STD_OPTIONAL 0)
|
|
+ set(STD_STRING_VIEW 0)
|
|
+ set(STD_VARIANT 0)
|
|
+endif()
|
|
+
|
|
list(APPEND CMAKE_MODULE_PATH
|
|
${CMAKE_CURRENT_LIST_DIR}/CMake
|
|
${CMAKE_CURRENT_LIST_DIR}/absl/copts
|
|
diff --git a/absl/base/CMakeLists.txt b/absl/base/CMakeLists.txt
|
|
index 9ff5aa2..315bee4 100644
|
|
--- a/absl/base/CMakeLists.txt
|
|
+++ b/absl/base/CMakeLists.txt
|
|
@@ -87,6 +87,12 @@ absl_cc_library(
|
|
absl::errno_saver
|
|
)
|
|
|
|
+if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/options.h.in)
|
|
+ file(RENAME ${CMAKE_CURRENT_LIST_DIR}/options.h ${CMAKE_CURRENT_LIST_DIR}/options.h.in)
|
|
+endif()
|
|
+file(REMOVE ${CMAKE_CURRENT_LIST_DIR}/options.h)
|
|
+configure_file(${CMAKE_CURRENT_LIST_DIR}/options.h.in ${CMAKE_CURRENT_LIST_DIR}/options.h @ONLY)
|
|
+
|
|
absl_cc_library(
|
|
NAME
|
|
config
|
|
diff --git a/absl/base/options.h b/absl/base/options.h
|
|
index 6a0fb07..54a9780 100644
|
|
--- a/absl/base/options.h
|
|
+++ b/absl/base/options.h
|
|
@@ -100,7 +100,7 @@
|
|
// User code should not inspect this macro. To check in the preprocessor if
|
|
// absl::any is a typedef of std::any, use the feature macro ABSL_USES_STD_ANY.
|
|
|
|
-#define ABSL_OPTION_USE_STD_ANY 2
|
|
+#define ABSL_OPTION_USE_STD_ANY @STD_ANY@
|
|
|
|
|
|
// ABSL_OPTION_USE_STD_OPTIONAL
|
|
@@ -127,7 +127,7 @@
|
|
// absl::optional is a typedef of std::optional, use the feature macro
|
|
// ABSL_USES_STD_OPTIONAL.
|
|
|
|
-#define ABSL_OPTION_USE_STD_OPTIONAL 2
|
|
+#define ABSL_OPTION_USE_STD_OPTIONAL @STD_OPTIONAL@
|
|
|
|
|
|
// ABSL_OPTION_USE_STD_STRING_VIEW
|
|
@@ -154,7 +154,7 @@
|
|
// absl::string_view is a typedef of std::string_view, use the feature macro
|
|
// ABSL_USES_STD_STRING_VIEW.
|
|
|
|
-#define ABSL_OPTION_USE_STD_STRING_VIEW 2
|
|
+#define ABSL_OPTION_USE_STD_STRING_VIEW @STD_STRING_VIEW@
|
|
|
|
// ABSL_OPTION_USE_STD_VARIANT
|
|
//
|
|
@@ -180,7 +180,7 @@
|
|
// absl::variant is a typedef of std::variant, use the feature macro
|
|
// ABSL_USES_STD_VARIANT.
|
|
|
|
-#define ABSL_OPTION_USE_STD_VARIANT 2
|
|
+#define ABSL_OPTION_USE_STD_VARIANT @STD_VARIANT@
|
|
|
|
|
|
// ABSL_OPTION_USE_INLINE_NAMESPACE
|