@@ -66,6 +66,11 @@ The SDK uses CMake for C++ compilation and Gradle for Android-specific parts.
6666 (replace ` firebase_analytics ` with the desired library).
6767 Or omit the entire ` --target ` parameter to build all targets.
6868
69+ For development, building specific targets
70+ (e.g., ` cmake --build . --target firebase_app ` ) is generally faster and
71+ recommended once CMake configuration is complete. The full build
72+ (` cmake --build . ` ) can be very time-consuming.
73+
6974You can also use the ` scripts/gha/build_desktop.py ` script to build the full
7075desktop SDK.
7176
@@ -88,17 +93,21 @@ generated in each library's build directory (e.g.,
8893You can build the entire SDK for Android by running ` ./gradlew build ` or
8994` build_scripts/android/build.sh ` .
9095
91- ### Desktop Platform Setup Details
96+ #### Troubleshooting Desktop Builds
9297
93- When setting up for desktop, if you are using an iOS
94- ` GoogleService-Info.plist ` file, convert it to the required
95- ` google-services-desktop.json ` using the script:
96- ` python generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist `
97- (run this from the script's directory, ensuring the plist file is accessible) .
98+ * Linux: ** Missing ` libsecret-1-dev ` ** :
99+ CMake configuration may fail if ` libsecret-1-dev ` is not installed.
100+ The ` scripts/gha/install_prereqs_desktop.py ` script should handle this.
101+ If it doesn't, or if the package is removed, you might need to install it
102+ manually: ` sudo apt-get update && sudo apt-get install -y libsecret-1-dev ` .
98103
99- The desktop SDK searches for configuration files in the current working
100- directory, first for ` google-services-desktop.json ` , then for
101- ` google-services.json ` .
104+ * Linux: ** LevelDB Patch Failure when building Firestore** :
105+ If you are building the SDK with Firestore enabled
106+ (` -DFIREBASE_INCLUDE_FIRESTORE=ON ` , which is the default for desktop) and
107+ encounter a patch error related to ` leveldb-1.23_windows_paths.patch ` (e.g.,
108+ ` util/env_windows.cc: patch does not apply ` ), you can ignore this issue if
109+ it does not prevent the rest of the build from running. The patch is only
110+ important on Windows.
102111
103112Common system library dependencies for desktop:
104113* ** Windows** : Common dependencies include ` advapi32.lib ` , ` ws2_32.lib ` ,
@@ -109,6 +118,9 @@ Common system library dependencies for desktop:
109118* ** Linux** : Common dependencies include ` pthread ` (system library). When
110119 using GCC 5+, define ` -D_GLIBCXX_USE_CXX11_ABI=0 ` .
111120
121+ On all desktop platforms, building with -DFIREBASE_USE_BORINGSSL=YES can help
122+ bypass any OpenSSL dependency issues.
123+
112124## Including the SDK in Projects
113125
114126### CMake Projects
@@ -151,18 +163,10 @@ coverage within the integration tests.
151163 (e.g., Firestore, Auth) are typically located in the ` integration_test/ `
152164 directory within that product's module (e.g.,
153165 ` firestore/integration_test/ ` ).
154- * ** Test Scripts** : The root of the repository contains scripts for running
155- tests on various platforms, such as:
156- * ` test_windows_x32.bat `
157- * ` test_windows_x64.bat `
158- * ` test_linux.sh `
159- * ` test_mac_x64.sh `
160- * ` test_mac_ios.sh `
161- * ` test_mac_ios_simulator.sh `
162-
163- These scripts typically build the SDKs and then execute the relevant tests
164- (primarily integration tests) via CTest or other platform-specific test
165- runners.
166+
167+ Because building integration tests requires internal google-services files,
168+ Jules cannot do it in its environment; instead, we rely on GitHub Actions's
169+ Integration Test workflow to build and run the integration tests.
166170
167171## Writing Tests
168172
0 commit comments