From 312953e062841d9072b5d9eef8aafcc32a1d0569 Mon Sep 17 00:00:00 2001 From: AustinBenoit Date: Fri, 27 Feb 2026 11:22:29 -0500 Subject: [PATCH 1/2] Update to c++ 17 --- CMakeLists.txt | 2 +- analytics/integration_test/CMakeLists.txt | 2 +- app/integration_test/CMakeLists.txt | 2 +- app/rest/CMakeLists.txt | 2 +- app_check/integration_test/CMakeLists.txt | 2 +- auth/integration_test/CMakeLists.txt | 2 +- database/integration_test/CMakeLists.txt | 2 +- firestore/integration_test/CMakeLists.txt | 2 +- firestore/integration_test_internal/CMakeLists.txt | 2 +- functions/integration_test/CMakeLists.txt | 2 +- installations/integration_test/CMakeLists.txt | 2 +- messaging/integration_test/CMakeLists.txt | 2 +- remote_config/integration_test/CMakeLists.txt | 2 +- storage/integration_test/CMakeLists.txt | 2 +- testing/CMakeLists.txt | 2 +- ump/integration_test/CMakeLists.txt | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b702d2b450..ef3cc15b57 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..bca622cd72 100644 --- a/analytics/integration_test/CMakeLists.txt +++ b/analytics/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/app/integration_test/CMakeLists.txt index fd0b0f8de5..f424494539 100644 --- a/app/integration_test/CMakeLists.txt +++ b/app/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/rest/CMakeLists.txt b/app/rest/CMakeLists.txt index dce22ec2e1..b2777d184d 100644 --- a/app/rest/CMakeLists.txt +++ b/app/rest/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required(VERSION 3.22) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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..fa1cd41b2c 100644 --- a/app_check/integration_test/CMakeLists.txt +++ b/app_check/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/auth/integration_test/CMakeLists.txt index 164f89ce46..4b08f2bb6a 100644 --- a/auth/integration_test/CMakeLists.txt +++ b/auth/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/database/integration_test/CMakeLists.txt index 700cb5088d..88678dd21e 100644 --- a/database/integration_test/CMakeLists.txt +++ b/database/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/firestore/integration_test/CMakeLists.txt index 1225226305..43800e49c5 100644 --- a/firestore/integration_test/CMakeLists.txt +++ b/firestore/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/firestore/integration_test_internal/CMakeLists.txt index 1a25cc9510..8faad3801f 100644 --- a/firestore/integration_test_internal/CMakeLists.txt +++ b/firestore/integration_test_internal/CMakeLists.txt @@ -236,7 +236,7 @@ include_directories(${ABSEIL_CPP_ROOT}) add_definitions(-DINTERNAL_EXPERIMENTAL) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/functions/integration_test/CMakeLists.txt index 305f802ee4..2702b00f8d 100644 --- a/functions/integration_test/CMakeLists.txt +++ b/functions/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/installations/integration_test/CMakeLists.txt index f740f178f6..8eee2ad3a5 100644 --- a/installations/integration_test/CMakeLists.txt +++ b/installations/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/messaging/integration_test/CMakeLists.txt index 9fcf569035..99f59da21e 100644 --- a/messaging/integration_test/CMakeLists.txt +++ b/messaging/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/remote_config/integration_test/CMakeLists.txt index e6a570eea9..bea8ac6bc8 100644 --- a/remote_config/integration_test/CMakeLists.txt +++ b/remote_config/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/CMakeLists.txt b/storage/integration_test/CMakeLists.txt index 1fc6cad1d3..c062e67af2 100644 --- a/storage/integration_test/CMakeLists.txt +++ b/storage/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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/testing/CMakeLists.txt b/testing/CMakeLists.txt index e0da74d416..206f3fdfb5 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..099223f20a 100644 --- a/ump/integration_test/CMakeLists.txt +++ b/ump/integration_test/CMakeLists.txt @@ -85,7 +85,7 @@ set(FIREBASE_INTEGRATION_TEST_SRCS include_directories(src) # Firebase C++ SDK requires C++14. -set (CMAKE_CXX_STANDARD 14) +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 From ab54ef10cbdfb5f377dd4324194d02a8500ee80a Mon Sep 17 00:00:00 2001 From: AustinBenoit Date: Mon, 2 Mar 2026 16:57:22 -0500 Subject: [PATCH 2/2] add in some firestore patches to try and get things to build --- cmake/external/firestore.patch.txt | 91 +++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) diff --git a/cmake/external/firestore.patch.txt b/cmake/external/firestore.patch.txt index fb3ce2e2b8..76e25482b8 100644 --- a/cmake/external/firestore.patch.txt +++ b/cmake/external/firestore.patch.txt @@ -1,5 +1,39 @@ +--- + cmake/external/grpc.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmake/external/grpc.cmake b/cmake/external/grpc.cmake +index 21d970a8d..cc7a038a5 100644 +--- a/cmake/external/grpc.cmake ++++ b/cmake/external/grpc.cmake +@@ -18,7 +18,7 @@ if(TARGET grpc) + return() + endif() + +-set(version 1.62.0) ++set(version 1.69.0) + + ExternalProject_Add( + grpc +@@ -26,7 +26,7 @@ ExternalProject_Add( + DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR} + DOWNLOAD_NAME grpc-${version}.tar.gz + URL https://github.com/grpc/grpc/archive/v${version}.tar.gz +- URL_HASH SHA256=f40bde4ce2f31760f65dc49a2f50876f59077026494e67dccf23992548b1b04f ++ URL_HASH SHA256=cd256d91781911d46a57506978b3979bfee45d5086a1b6668a3ae19c5e77f8dc + + PREFIX ${PROJECT_BINARY_DIR} + SOURCE_DIR ${PROJECT_BINARY_DIR}/src/grpc +-- +2.51.0.710.ga91ca5db03-goog + + +--- + cmake/external/leveldb.cmake | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + diff --git a/cmake/external/leveldb.cmake b/cmake/external/leveldb.cmake -index 920bf2928..c5c9cc7ee 100644 +index 81ed8e6f1..32f1993c0 100644 --- a/cmake/external/leveldb.cmake +++ b/cmake/external/leveldb.cmake @@ -24,7 +24,10 @@ if(TARGET leveldb) @@ -14,3 +48,58 @@ index 920bf2928..c5c9cc7ee 100644 ExternalProject_Get_property(snappy SOURCE_DIR) set(snappy_source_dir "${SOURCE_DIR}") +-- +2.51.0.710.ga91ca5db03-goog + + +--- + Firestore/core/CMakeLists.txt | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/Firestore/core/CMakeLists.txt b/Firestore/core/CMakeLists.txt +index cb4050748..90cd4af47 100644 +--- a/Firestore/core/CMakeLists.txt ++++ b/Firestore/core/CMakeLists.txt +@@ -245,6 +245,15 @@ target_include_directories( + ${PROJECT_SOURCE_DIR}/Firestore/core/include + ) + ++# Add the gRPC include directories as SYSTEM directories to silence warnings ++target_include_directories( ++ firestore_core ++ SYSTEM # The SYSTEM keyword applies to all directories in this block ++ PUBLIC ++ # This generator expression automatically gets the correct include path(s) from the grpc++ target ++ $ ++) ++ + target_link_libraries( + firestore_core PUBLIC + LevelDB::LevelDB +-- +2.51.0.710.ga91ca5db03-goog + + +--- + cmake/compiler_setup.cmake | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/cmake/compiler_setup.cmake b/cmake/compiler_setup.cmake +index 00e96033..0bfa1e40 100644 +--- a/cmake/compiler_setup.cmake ++++ b/cmake/compiler_setup.cmake +@@ -17,9 +17,9 @@ include(CheckCXXCompilerFlag) + # C++ Compiler setup + + # We use C++14 +-set(CMAKE_CXX_STANDARD 14) +-set(CMAKE_CXX_STANDARD_REQUIRED ON) +-set(CMAKE_CXX_EXTENSIONS OFF) ++# set(CMAKE_CXX_STANDARD 14) ++# set(CMAKE_CXX_STANDARD_REQUIRED ON) ++# set(CMAKE_CXX_EXTENSIONS OFF) + + if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CXX_CLANG ON) +-- +2.51.0.710.ga91ca5db03-goog \ No newline at end of file