Skip to content

Commit 9f26e41

Browse files
author
Cynthia Jiang
committed
Add stub test flag for Unity build
1 parent 7843318 commit 9f26e41

File tree

4 files changed

+26
-13
lines changed

4 files changed

+26
-13
lines changed

CMakeLists.txt

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ option(FIREBASE_INCLUDE_STORAGE
6161

6262
option(FIREBASE_CPP_BUILD_TESTS
6363
"Enable the Firebase C++ Build Tests." OFF)
64+
option(FIREBASE_CPP_BUILD_STUB_TESTS
65+
"Enable the Firebase C++ Build Stub Tests." OFF)
6466
option(FIREBASE_FORCE_FAKE_SECURE_STORAGE
6567
"Disable use of platform secret store and use fake impl." OFF)
6668
option(FIREBASE_CPP_BUILD_PACKAGE
@@ -107,7 +109,7 @@ list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_CURRENT_LIST_DIR}/cmake)
107109
include(external_rules)
108110
include(cpp_pack)
109111

110-
if(FIREBASE_CPP_BUILD_TESTS)
112+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
111113
enable_testing()
112114
include(test_rules)
113115
# Copy the custom CTest file into the binary directory, so that it is used.
@@ -296,11 +298,13 @@ endif()
296298
if(FIRESTORE_USE_EXTERNAL_CMAKE_BUILD)
297299
set(FIRESTORE_BINARY_DIR ${FIRESTORE_SOURCE_DIR}-build)
298300

299-
set(
300-
FIREBASE_IOS_BUILD_TESTS
301-
${FIREBASE_CPP_BUILD_TESTS}
302-
CACHE BOOL "Force Firestore build tests to match"
303-
)
301+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
302+
set(FIREBASE_IOS_BUILD_TESTS ON
303+
CACHE BOOL "Force Firestore build tests to match")
304+
else()
305+
set(FIREBASE_IOS_BUILD_TESTS OFF
306+
CACHE BOOL "Force Firestore build tests to match")
307+
endif()
304308

305309
add_subdirectory(${FIRESTORE_SOURCE_DIR} ${FIRESTORE_BINARY_DIR})
306310

@@ -328,9 +332,11 @@ else()
328332
add_external_library(flatbuffers)
329333
endif()
330334

331-
if(FIREBASE_CPP_BUILD_TESTS AND NOT FIRESTORE_USE_EXTERNAL_CMAKE_BUILD)
332-
# Firestore's external build pulls in GoogleTest
333-
add_external_library(googletest)
335+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTSAND)
336+
if (NOT FIRESTORE_USE_EXTERNAL_CMAKE_BUILD)
337+
# Firestore's external build pulls in GoogleTest
338+
add_external_library(googletest)
339+
endif()
334340
endif()
335341

336342
if((FIREBASE_INCLUDE_DATABASE AND DESKTOP) AND NOT FIREBASE_INCLUDE_FIRESTORE)
@@ -525,7 +531,7 @@ add_subdirectory(ios_pod)
525531

526532
# If we're building tests, we need to include the 'testing' folder before any
527533
# of the tests actually get built.
528-
if(FIREBASE_CPP_BUILD_TESTS)
534+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
529535
add_subdirectory(testing)
530536
endif()
531537

cmake/external/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ if (${FIREBASE_EXTERNAL_PLATFORM} STREQUAL "DESKTOP")
3838
endif()
3939

4040
# Support files for the test framework.
41-
if(FIREBASE_CPP_BUILD_TESTS)
41+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
4242
include(googletest)
4343

4444
# Download the iOS SDK Frameworks required for linking the tests.

cmake/external/firebase_ios_sdk.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ set(ZIP_FILENAME "./firebase_sdk_${SDK_VERSION}.zip")
3636
set(OUTDIR "./firebase_ios_sdk/")
3737

3838
# Download as required.
39-
if(FIREBASE_CPP_BUILD_TESTS)
39+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
4040
if(NOT EXISTS ${OUTDIR})
4141
if(NOT EXISTS ${ZIP_FILENAME})
4242
file(DOWNLOAD ${URL} ${ZIP_FILENAME})

cmake/external_rules.cmake

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ function(download_external_sources)
6161
check_use_local_directory(ZLIB)
6262
check_use_local_directory(FIREBASE_IOS_SDK)
6363

64+
if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
65+
set(FIREBASE_DOWNLOAD_GTEST ON)
66+
else()
67+
set(FIREBASE_DOWNLOAD_GTEST OFF)
68+
endif()
69+
6470
execute_process(
6571
COMMAND
6672
${ENV_COMMAND} ${CMAKE_COMMAND}
@@ -74,13 +80,14 @@ function(download_external_sources)
7480
-DDOWNLOAD_BORINGSSL=${DOWNLOAD_BORINGSSL}
7581
-DDOWNLOAD_CURL=${DOWNLOAD_CURL}
7682
-DDOWNLOAD_FLATBUFFERS=${DOWNLOAD_FLATBUFFERS}
77-
-DDOWNLOAD_GOOGLETEST=${FIREBASE_CPP_BUILD_TESTS}
83+
-DDOWNLOAD_GOOGLETEST=${FIREBASE_DOWNLOAD_GTEST}
7884
-DDOWNLOAD_LIBUV=${DOWNLOAD_LIBUV}
7985
-DDOWNLOAD_NANOPB=${DOWNLOAD_NANOPB}
8086
-DDOWNLOAD_UWEBSOCKETS=${DOWNLOAD_UWEBSOCKETS}
8187
-DDOWNLOAD_ZLIB=${DOWNLOAD_ZLIB}
8288
-DDOWNLOAD_FIREBASE_IOS_SDK=${DOWNLOAD_FIREBASE_IOS_SDK}
8389
-DFIREBASE_CPP_BUILD_TESTS=${FIREBASE_CPP_BUILD_TESTS}
90+
-DFIREBASE_CPP_BUILD_STUB_TESTS=${FIREBASE_CPP_BUILD_STUB_TESTS}
8491
${PROJECT_SOURCE_DIR}/cmake/external
8592
OUTPUT_FILE ${PROJECT_BINARY_DIR}/external/output_cmake_config.txt
8693
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/external

0 commit comments

Comments
 (0)