95 lines
2.8 KiB
Diff
Executable File
95 lines
2.8 KiB
Diff
Executable File
diff --git a/CMake/abslConfig.cmake.in b/CMake/abslConfig.cmake.in
|
|
index 62d246d..afcec1f 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@)
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 750a475..239977f 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -67,6 +67,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()
|
|
+
|
|
option(ABSL_PROPAGATE_CXX_STD
|
|
"Use CMake C++ standard meta features (e.g. cxx_std_11) that propagate to targets that link to Abseil"
|
|
OFF) # TODO: Default to ON for CMake 3.8 and greater.
|
|
diff --git a/absl/base/CMakeLists.txt b/absl/base/CMakeLists.txt
|
|
index c7233cb..65a9076 100644
|
|
--- a/absl/base/CMakeLists.txt
|
|
+++ b/absl/base/CMakeLists.txt
|
|
@@ -38,6 +38,11 @@ absl_cc_library(
|
|
COPTS
|
|
${ABSL_DEFAULT_COPTS}
|
|
)
|
|
+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
|
|
diff --git a/absl/base/options.h b/absl/base/options.h
|
|
index 56b4e36..0b098ed 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
|