Skip to main content

firebase-cpp-builder

Instructions and workflows for building the Firebase C++ SDK natively. Use this skill when you need to compile the C++ SDK per-product (e.g., auth, database) across different platforms (Desktop, iOS, Android).

الانتقال إلى التثبيت

معلومات المصدر

المستودع
firebase/firebase-cpp-sdk
آخر نشاط في المصدر
١ أبريل ٢٠٢٦ في ١١:٥٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣٢٦
التفرعات
١٣٨

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
firebase-cpp-builder
description
Instructions and workflows for building the Firebase C++ SDK natively. Use this skill when you need to compile the C++ SDK per-product (e.g., auth, database) across different platforms (Desktop, iOS, Android).
# Building the Firebase C++ SDK This skill provides instructions on how to build the Firebase C++ SDK directly from source, specifically tailored for building individual products (like `firebase_auth`, `firebase_database`, etc.). ## Prerequisites Before building, ensure that your Python environment is set up with all required dependencies, especially if you plan to use helper scripts: - **Python Dependencies**: Run `pip install -r scripts/gha/python_requirements.txt` to install required libraries (such as `attrs`, `absl-py`, etc.). ## 1. Desktop Builds (Mac, Linux, Windows) The easiest way to build for Desktop is to use the Python helper script from the repository root: ```bash python3 scripts/gha/build_desktop.py -a <arch> --build_dir <dir> ``` _(Plenty more options: run `python3 scripts/gha/build_desktop.py --help` for info.)_ Alternatively, you can build manually with CMake. The build process will automatically download necessary dependencies. ```bash mkdir desktop_build cd desktop_build cmake .. cmake --build . --target firebase_<product> -j ``` _Example: `cmake --build . --target firebase_auth -j`_ ## 2. iOS Builds For iOS, you can use the convenience script from the repository root: ```bash ./build_scripts/ios/build.sh -b ios_build_dir -s . ``` _(Run `./build_scripts/ios/build.sh -h` for more options.)_ Alternatively, you can use CMake's native Xcode generator manually. Ensure you have CocoaPods installed if building products that depend on iOS SDK Pods. ```bash mkdir ios_build cd ios_build cmake .. -G Xcode -DCMAKE_SYSTEM_NAME=iOS cmake --build . --target firebase_<product> -j ``` Alternatively, you can build XCFrameworks using the helper script: ```bash python3 scripts/gha/build_ios_tvos.py -s . -b ios_tvos_build ``` ## 3. Android Builds For Android, use the convenience script from the repository root: ```bash ./build_scripts/android/build.sh android_build_dir . ``` _(You can also specify an STL variant with the 3rd parameter. Run the script without any parameters to see the usage.)_ Alternatively, when building the Firebase C++ SDK manually for Android, the repository uses a Gradle wrapper where each product has its own subproject. To build a specific product's AARs, run the gradle build task for that module: ```bash ./gradlew :<product>:build ``` _Example: `./gradlew :auth:build` or `./gradlew :database:build`_ Note that as part of the build process, each library generates a ProGuard file in its build directory (e.g., `<product>/build/<product>.pro`). ## CMake Target Naming Convention When using CMake directly (for Desktop or iOS/tvOS), the targets are consistently named `firebase_<product>`. Common targets include: - `firebase_app` - `firebase_analytics` - `firebase_auth` - `firebase_database` - `firebase_firestore` - `firebase_functions` - `firebase_messaging` - `firebase_remote_config` - `firebase_storage` ## Product Naming Disambiguation (`firebase_auth` vs `auth`) Different build tools use different naming conventions for products in this repository: - **CMake Targets (Desktop/iOS)**: Typically prefixed with `firebase_` (e.g., `firebase_auth`). - **Gradle Subprojects (Android)**: Typically use the raw module name (e.g., `:auth:build`). - **Python Scripts** (e.g., `build_desktop.py`, `build_testapps.py`): Typically use the raw module name (e.g., `--t auth`). > [!TIP] > If you are unsure about the exact product name or supported flags, run Python scripts with `--help` (e.g., `build_desktop.py --help`). For shell scripts, run without parameters (Android) or with `-h` (iOS) to see usage.
عرض على GitHub