From 6e342381eab81bb380991bfc1f466b08e02f624a Mon Sep 17 00:00:00 2001 From: austinbenoit Date: Tue, 6 Oct 2026 15:56:15 +0000 Subject: [PATCH 1/2] Update C++ standard to C++17 across CMake, Xcode projects, and Firestore patches --- CMakeLists.txt | 2 +- analytics/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- app/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 4 +- app/rest/CMakeLists.txt | 4 +- app_check/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- auth/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- cmake/external/firestore.patch.txt | 115 ++++++++++++++++++ database/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- firestore/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- .../integration_test_internal/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- functions/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- installations/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 4 +- messaging/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- remote_config/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- .../gameloop.xcodeproj/project.pbxproj | 4 +- .../project.pbxproj | 4 +- storage/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 8 +- testing/CMakeLists.txt | 2 +- ump/integration_test/CMakeLists.txt | 4 +- .../project.pbxproj | 4 +- 32 files changed, 195 insertions(+), 80 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7cd1a549a2..04cbc87224 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required(VERSION 3.22) -set (CMAKE_CXX_STANDARD 14) +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Turn on virtual folders for visual studio diff --git a/analytics/integration_test/CMakeLists.txt b/analytics/integration_test/CMakeLists.txt index 953008a226..56f307342b 100644 --- a/analytics/integration_test/CMakeLists.txt +++ b/analytics/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj index 8ad1bfcbd7..427b498261 100644 --- a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj @@ -336,7 +336,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -379,7 +379,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -482,7 +482,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -536,7 +536,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/app/integration_test/CMakeLists.txt b/app/integration_test/CMakeLists.txt index fd0b0f8de5..354c1a0265 100644 --- a/app/integration_test/CMakeLists.txt +++ b/app/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/app/integration_test/integration_test.xcodeproj/project.pbxproj b/app/integration_test/integration_test.xcodeproj/project.pbxproj index 4b0446a3fc..327cde1f29 100644 --- a/app/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app/integration_test/integration_test.xcodeproj/project.pbxproj @@ -220,7 +220,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -263,7 +263,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/app/rest/CMakeLists.txt b/app/rest/CMakeLists.txt index 547e5ced41..2d806ad231 100644 --- a/app/rest/CMakeLists.txt +++ b/app/rest/CMakeLists.txt @@ -15,8 +15,8 @@ # CMake file for the firebase_rest_lib library cmake_minimum_required(VERSION 3.22) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. project(firebase_rest_lib NONE) diff --git a/app_check/integration_test/CMakeLists.txt b/app_check/integration_test/CMakeLists.txt index 55dbb37941..1cb3b774da 100644 --- a/app_check/integration_test/CMakeLists.txt +++ b/app_check/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj index 87bc70fb76..ffaec6cf67 100644 --- a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj @@ -362,7 +362,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -405,7 +405,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -510,7 +510,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -564,7 +564,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/auth/integration_test/CMakeLists.txt b/auth/integration_test/CMakeLists.txt index 164f89ce46..d50c20c2c0 100644 --- a/auth/integration_test/CMakeLists.txt +++ b/auth/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/auth/integration_test/integration_test.xcodeproj/project.pbxproj b/auth/integration_test/integration_test.xcodeproj/project.pbxproj index cd62b569a6..64e2f871b1 100644 --- a/auth/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/auth/integration_test/integration_test.xcodeproj/project.pbxproj @@ -363,7 +363,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -406,7 +406,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -511,7 +511,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -565,7 +565,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/cmake/external/firestore.patch.txt b/cmake/external/firestore.patch.txt index fb3ce2e2b8..3ecb13cb94 100644 --- a/cmake/external/firestore.patch.txt +++ b/cmake/external/firestore.patch.txt @@ -14,3 +14,118 @@ index 920bf2928..c5c9cc7ee 100644 ExternalProject_Get_property(snappy SOURCE_DIR) set(snappy_source_dir "${SOURCE_DIR}") +diff --git a/Firestore/core/src/util/ordered_code.h b/Firestore/core/src/util/ordered_code.h +--- a/Firestore/core/src/util/ordered_code.h ++++ b/Firestore/core/src/util/ordered_code.h +@@ -39,7 +39,8 @@ + #ifndef FIRESTORE_CORE_SRC_UTIL_ORDERED_CODE_H_ + #define FIRESTORE_CORE_SRC_UTIL_ORDERED_CODE_H_ + ++#include + #include + + #include "absl/strings/string_view.h" + +diff --git a/Firestore/core/src/util/quadruple.cc b/Firestore/core/src/util/quadruple.cc +--- a/Firestore/core/src/util/quadruple.cc ++++ b/Firestore/core/src/util/quadruple.cc +@@ -20,6 +20,7 @@ + #include + #include + ++#include "Firestore/core/src/util/bits.h" + #include "Firestore/core/src/util/quadruple_builder.h" + + namespace firebase { +@@ -89,7 +90,7 @@ Quadruple::Quadruple(int64_t x) { + mantissa_lo_ = 0; + } else { + uint64_t ux = static_cast(x); +- int leading_zeros = __builtin_clzll(ux); ++ int leading_zeros = 63 - Bits::Log2FloorNonZero64(ux); + // Left-justify with the leading 1 dropped. + mantissa_hi_ = ux << (leading_zeros + 1); + mantissa_lo_ = 0; +@@ -225,7 +226,8 @@ Quadruple::operator double() const { + } + default: + int32_t unbiased_exp = static_cast(exponent_ - kExponentBias); +- return scalb((1LL << 52) | (mantissa_hi_ >> 12), -52 + unbiased_exp) * ++ return ldexp(static_cast((1ULL << 52) | (mantissa_hi_ >> 12)), ++ -52 + unbiased_exp) * + (negative_ ? -1 : 1); + } + } +diff --git a/Firestore/core/src/util/quadruple_builder.h b/Firestore/core/src/util/quadruple_builder.h +--- a/Firestore/core/src/util/quadruple_builder.h ++++ b/Firestore/core/src/util/quadruple_builder.h +@@ -16,7 +16,6 @@ + #ifndef FIRESTORE_CORE_SRC_UTIL_QUADRUPLE_BUILDER_H_ + #define FIRESTORE_CORE_SRC_UTIL_QUADRUPLE_BUILDER_H_ + +-#include + #include + #include + +diff --git a/Firestore/core/src/util/quadruple_builder.cc b/Firestore/core/src/util/quadruple_builder.cc +--- a/Firestore/core/src/util/quadruple_builder.cc ++++ b/Firestore/core/src/util/quadruple_builder.cc +@@ -19,6 +19,8 @@ + #include + #include + ++#include "Firestore/core/src/util/bits.h" ++ + namespace firebase { + namespace firestore { + namespace util { +@@ -785,7 +787,7 @@ void QuadrupleBuilder::multBuffBy10(std::array& buffer) { + // added to the result's exponent, or 0 otherwise + template + int32_t QuadrupleBuilder::normalizeMant(std::array& mantissa) { +- int32_t expCorr = 31 - __builtin_clzll(mantissa[0]); ++ int32_t expCorr = 31 - (63 - Bits::Log2FloorNonZero64(mantissa[0])); + if (expCorr != 0) { + divBuffByPower2(mantissa, expCorr); + } +diff --git a/Firestore/core/test/unit/model/mutation_test.cc b/Firestore/core/test/unit/model/mutation_test.cc +--- a/Firestore/core/test/unit/model/mutation_test.cc ++++ b/Firestore/core/test/unit/model/mutation_test.cc +@@ -403,29 +403,29 @@ TEST(MutationTest, AppliesIncrementTransformsConsecutively) { + + TEST(MutationTest, AppliesIncrementWithoutOverflow) { + auto base_data = +- Map("a", LONG_MAX - 1, "b", LONG_MAX - 1, "c", LONG_MAX, "d", LONG_MAX); ++ Map("a", INT64_MAX - 1, "b", INT64_MAX - 1, "c", INT64_MAX, "d", INT64_MAX); + TransformPairs transforms = { + {"a", Increment(1)}, +- {"b", Increment(LONG_MAX)}, ++ {"b", Increment(INT64_MAX)}, + {"c", Increment(1)}, +- {"d", Increment(LONG_MAX)}, ++ {"d", Increment(INT64_MAX)}, + }; + auto expected = +- Map("a", LONG_MAX, "b", LONG_MAX, "c", LONG_MAX, "d", LONG_MAX); ++ Map("a", INT64_MAX, "b", INT64_MAX, "c", INT64_MAX, "d", INT64_MAX); + TransformBaseDoc(std::move(base_data), transforms, std::move(expected)); + } + + TEST(MutationTest, AppliesIncrementWithoutUnderflow) { + auto base_data = +- Map("a", LONG_MIN + 1, "b", LONG_MIN + 1, "c", LONG_MIN, "d", LONG_MIN); ++ Map("a", INT64_MIN + 1, "b", INT64_MIN + 1, "c", INT64_MIN, "d", INT64_MIN); + TransformPairs transforms = { + {"a", Increment(-1)}, +- {"b", Increment(LONG_MIN)}, ++ {"b", Increment(INT64_MIN)}, + {"c", Increment(-1)}, +- {"d", Increment(LONG_MIN)}, ++ {"d", Increment(INT64_MIN)}, + }; + auto expected = +- Map("a", LONG_MIN, "b", LONG_MIN, "c", LONG_MIN, "d", LONG_MIN); ++ Map("a", INT64_MIN, "b", INT64_MIN, "c", INT64_MIN, "d", INT64_MIN); + TransformBaseDoc(std::move(base_data), transforms, std::move(expected)); + } + diff --git a/database/integration_test/CMakeLists.txt b/database/integration_test/CMakeLists.txt index 700cb5088d..3ee24c3650 100644 --- a/database/integration_test/CMakeLists.txt +++ b/database/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/database/integration_test/integration_test.xcodeproj/project.pbxproj b/database/integration_test/integration_test.xcodeproj/project.pbxproj index 5a376f43e5..3242f7315d 100644 --- a/database/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/database/integration_test/integration_test.xcodeproj/project.pbxproj @@ -344,7 +344,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -387,7 +387,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -492,7 +492,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -546,7 +546,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/firestore/integration_test/CMakeLists.txt b/firestore/integration_test/CMakeLists.txt index 9c74e94d60..fe5428a51c 100644 --- a/firestore/integration_test/CMakeLists.txt +++ b/firestore/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj index 26d07c3b1a..ea996c2ae9 100644 --- a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj @@ -349,7 +349,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -392,7 +392,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -497,7 +497,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -554,7 +554,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/firestore/integration_test_internal/CMakeLists.txt b/firestore/integration_test_internal/CMakeLists.txt index 9c82aea5da..a50620d897 100644 --- a/firestore/integration_test_internal/CMakeLists.txt +++ b/firestore/integration_test_internal/CMakeLists.txt @@ -235,8 +235,8 @@ include_directories(${ABSEIL_CPP_ROOT}) # Allow testing internal Firebase APIs. add_definitions(-DINTERNAL_EXPERIMENTAL) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj index f0d41af0fb..1237a0e11f 100644 --- a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj @@ -612,7 +612,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -655,7 +655,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -784,7 +784,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -853,7 +853,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/functions/integration_test/CMakeLists.txt b/functions/integration_test/CMakeLists.txt index 4b6d791076..8013d93400 100644 --- a/functions/integration_test/CMakeLists.txt +++ b/functions/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/functions/integration_test/integration_test.xcodeproj/project.pbxproj b/functions/integration_test/integration_test.xcodeproj/project.pbxproj index 6d2718c3a4..cd9806b5de 100644 --- a/functions/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/functions/integration_test/integration_test.xcodeproj/project.pbxproj @@ -356,7 +356,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -399,7 +399,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -504,7 +504,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -561,7 +561,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/installations/integration_test/CMakeLists.txt b/installations/integration_test/CMakeLists.txt index f740f178f6..f61a3bd198 100644 --- a/installations/integration_test/CMakeLists.txt +++ b/installations/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/installations/integration_test/integration_test.xcodeproj/project.pbxproj b/installations/integration_test/integration_test.xcodeproj/project.pbxproj index d37bd46d6a..c31100701d 100644 --- a/installations/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/installations/integration_test/integration_test.xcodeproj/project.pbxproj @@ -223,7 +223,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -266,7 +266,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/messaging/integration_test/CMakeLists.txt b/messaging/integration_test/CMakeLists.txt index 9fcf569035..966b810d93 100644 --- a/messaging/integration_test/CMakeLists.txt +++ b/messaging/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj index 73f535437c..b6cca7c48f 100644 --- a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj @@ -353,7 +353,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -396,7 +396,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -499,7 +499,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -553,7 +553,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/remote_config/integration_test/CMakeLists.txt b/remote_config/integration_test/CMakeLists.txt index e6a570eea9..a8bdac90a2 100644 --- a/remote_config/integration_test/CMakeLists.txt +++ b/remote_config/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj index bdd23a55da..dcce7cd561 100644 --- a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj @@ -338,7 +338,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -381,7 +381,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -484,7 +484,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -538,7 +538,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj b/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj index a1de73c846..232bccae88 100644 --- a/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj +++ b/scripts/gha/integration_testing/gameloop_apple/gameloop.xcodeproj/project.pbxproj @@ -487,7 +487,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -548,7 +548,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp.xcodeproj/project.pbxproj b/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp.xcodeproj/project.pbxproj index 2389a01b57..affae3fd0c 100644 --- a/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp.xcodeproj/project.pbxproj +++ b/scripts/gha/ui_testing/uitest_apple/FirebaseCppUITestApp.xcodeproj/project.pbxproj @@ -242,7 +242,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -303,7 +303,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; diff --git a/storage/integration_test/CMakeLists.txt b/storage/integration_test/CMakeLists.txt index 1fc6cad1d3..89fe149815 100644 --- a/storage/integration_test/CMakeLists.txt +++ b/storage/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/storage/integration_test/integration_test.xcodeproj/project.pbxproj b/storage/integration_test/integration_test.xcodeproj/project.pbxproj index 23229e1906..0550865148 100644 --- a/storage/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/storage/integration_test/integration_test.xcodeproj/project.pbxproj @@ -355,7 +355,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -398,7 +398,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -503,7 +503,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; @@ -560,7 +560,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt index ee68f42769..45a75be01c 100644 --- a/testing/CMakeLists.txt +++ b/testing/CMakeLists.txt @@ -13,7 +13,7 @@ # limitations under the License. cmake_minimum_required(VERSION 3.22) -set (CMAKE_CXX_STANDARD 14) +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. include(binary_to_array) diff --git a/ump/integration_test/CMakeLists.txt b/ump/integration_test/CMakeLists.txt index 01bab7b8a4..cc54870e55 100644 --- a/ump/integration_test/CMakeLists.txt +++ b/ump/integration_test/CMakeLists.txt @@ -84,8 +84,8 @@ set(FIREBASE_INTEGRATION_TEST_SRCS # The include directory for the testapp. include_directories(src) -# Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +# Firebase C++ SDK requires C++17. +set (CMAKE_CXX_STANDARD 17) set (CMAKE_CXX_STANDARD_REQUIRED YES) # Don't fall back to an earlier version. # Download and unpack googletest (and googlemock) at configure time diff --git a/ump/integration_test/integration_test.xcodeproj/project.pbxproj b/ump/integration_test/integration_test.xcodeproj/project.pbxproj index f0a8b9b4dc..e0fc09d7f4 100644 --- a/ump/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/ump/integration_test/integration_test.xcodeproj/project.pbxproj @@ -228,7 +228,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; @@ -271,7 +271,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; From ab091e243201805bd999ba726697fcd76d4c1c70 Mon Sep 17 00:00:00 2001 From: austinbenoit Date: Tue, 6 Oct 2026 15:56:16 +0000 Subject: [PATCH 2/2] Temporarily pin firebase-ios-sdk to 8d7687f9 for C++17 support --- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- cmake/external/firestore.cmake | 2 +- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- ios_spm/Package.swift | 2 +- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- .../integration_test.xcodeproj/project.pbxproj | 4 ++-- 15 files changed, 28 insertions(+), 28 deletions(-) diff --git a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj index 427b498261..953986c72a 100644 --- a/analytics/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/analytics/integration_test/integration_test.xcodeproj/project.pbxproj @@ -587,8 +587,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/app/integration_test/integration_test.xcodeproj/project.pbxproj b/app/integration_test/integration_test.xcodeproj/project.pbxproj index 327cde1f29..8a1eec1d93 100644 --- a/app/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app/integration_test/integration_test.xcodeproj/project.pbxproj @@ -366,8 +366,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj index ffaec6cf67..f5c3309d96 100644 --- a/app_check/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/app_check/integration_test/integration_test.xcodeproj/project.pbxproj @@ -615,8 +615,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/auth/integration_test/integration_test.xcodeproj/project.pbxproj b/auth/integration_test/integration_test.xcodeproj/project.pbxproj index 64e2f871b1..decd9ddbf7 100644 --- a/auth/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/auth/integration_test/integration_test.xcodeproj/project.pbxproj @@ -616,8 +616,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/cmake/external/firestore.cmake b/cmake/external/firestore.cmake index c7b47e0758..5fd4cb08b3 100644 --- a/cmake/external/firestore.cmake +++ b/cmake/external/firestore.cmake @@ -20,7 +20,7 @@ endif() # If the format of the line below changes, then be sure to update # https://github.com/firebase/firebase-cpp-sdk/blob/fd054fa016/.github/workflows/update-dependencies.yml#L81 -set(version 12.19.0) +set(version 8d7687f915e31b84ec3dfc816034c3fc571be5e6) function(GetReleasedDep) message("Getting released firebase-ios-sdk @ ${version}") diff --git a/database/integration_test/integration_test.xcodeproj/project.pbxproj b/database/integration_test/integration_test.xcodeproj/project.pbxproj index 3242f7315d..e3aac225a9 100644 --- a/database/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/database/integration_test/integration_test.xcodeproj/project.pbxproj @@ -597,8 +597,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj index ea996c2ae9..42e8cf9b7c 100644 --- a/firestore/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test/integration_test.xcodeproj/project.pbxproj @@ -608,8 +608,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj index 1237a0e11f..5a9c015208 100644 --- a/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj +++ b/firestore/integration_test_internal/integration_test.xcodeproj/project.pbxproj @@ -919,8 +919,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/functions/integration_test/integration_test.xcodeproj/project.pbxproj b/functions/integration_test/integration_test.xcodeproj/project.pbxproj index cd9806b5de..57650f339f 100644 --- a/functions/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/functions/integration_test/integration_test.xcodeproj/project.pbxproj @@ -615,8 +615,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/installations/integration_test/integration_test.xcodeproj/project.pbxproj b/installations/integration_test/integration_test.xcodeproj/project.pbxproj index c31100701d..ebf4fb8a4d 100644 --- a/installations/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/installations/integration_test/integration_test.xcodeproj/project.pbxproj @@ -369,8 +369,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/ios_spm/Package.swift b/ios_spm/Package.swift index c2d26b4389..e1d419dcbd 100644 --- a/ios_spm/Package.swift +++ b/ios_spm/Package.swift @@ -26,7 +26,7 @@ let package = Package( .library(name: "FirebaseDependencies", targets: ["FirebaseDependencies"]), ], dependencies: [ - .package(url: "https://github.com/firebase/firebase-ios-sdk.git", exact: "12.18.0"), + .package(url: "https://github.com/firebase/firebase-ios-sdk.git", revision: "8d7687f915e31b84ec3dfc816034c3fc571be5e6"), .package(url: "https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git", exact: "2.3.0"), ], targets: [ diff --git a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj index b6cca7c48f..6f696f04f8 100644 --- a/messaging/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/messaging/integration_test/integration_test.xcodeproj/project.pbxproj @@ -604,8 +604,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj index dcce7cd561..c2c82d5b5e 100644 --- a/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/remote_config/integration_test/integration_test.xcodeproj/project.pbxproj @@ -589,8 +589,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/storage/integration_test/integration_test.xcodeproj/project.pbxproj b/storage/integration_test/integration_test.xcodeproj/project.pbxproj index 0550865148..00d362dfc3 100644 --- a/storage/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/storage/integration_test/integration_test.xcodeproj/project.pbxproj @@ -614,8 +614,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; /* End XCRemoteSwiftPackageReference section */ diff --git a/ump/integration_test/integration_test.xcodeproj/project.pbxproj b/ump/integration_test/integration_test.xcodeproj/project.pbxproj index e0fc09d7f4..403497cea0 100644 --- a/ump/integration_test/integration_test.xcodeproj/project.pbxproj +++ b/ump/integration_test/integration_test.xcodeproj/project.pbxproj @@ -376,8 +376,8 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git"; requirement = { - kind = exactVersion; - version = 12.19.0; + kind = revision; + revision = 8d7687f915e31b84ec3dfc816034c3fc571be5e6; }; }; 1ABAD42B030000000002 /* XCRemoteSwiftPackageReference "swift-package-manager-google-user-messaging-platform" */ = {