Clean up cmake ios for new cmake version by AustinBenoit · Pull Request #1843 · firebase/firebase-cpp-sdk
Summary of Changes
Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request streamlines the build process for Firebase C++ SDK on Apple platforms (iOS and tvOS) by adopting CMake's native support for these operating systems. By removing custom toolchain files and updating build configurations and documentation, the change simplifies future maintenance and aligns the project with modern CMake practices, making the build setup more robust and easier to understand.
Highlights
- Modernized CMake for Apple Platforms: Switched from custom CMake toolchain files (e.g.,
ios.cmake,apple.toolchain.cmake) to leveraging CMake's native support for iOS and tvOS, available since CMake 3.14+. - Simplified Build Configuration: Updated
CMakeLists.txtand build scripts (build.sh,build_ios_tvos.py) to useCMAKE_SYSTEM_NAME=iOSorCMAKE_SYSTEM_NAME=tvOSandCMAKE_OSX_SYSROOTfor platform detection and configuration. - Documentation Updates: Modified
AGENTS.mdandREADME.mdto reflect the new, simplified CMake configuration commands for iOS and tvOS. - Removed Legacy Toolchain Files: Deleted the custom
cmake/toolchains/apple.toolchain.cmake,cmake/toolchains/ios.cmake, andcmake/toolchains/ios_simulator.cmakefiles, reducing codebase complexity.
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.
Changelog
- AGENTS.md
- Updated instructions for configuring CMake for iOS builds.
- CMakeLists.txt
- Modified platform detection logic to use CMAKE_SYSTEM_NAME for iOS and tvOS.
- README.md
- Updated build instructions for iOS and tvOS to reflect native CMake support.
- build_scripts/ios/build.sh
- Modified the build script to use CMAKE_SYSTEM_NAME=iOS and CMAKE_OSX_SYSROOT instead of a custom toolchain file.
- build_scripts/tvos/build.sh
- Modified the build script to use CMAKE_SYSTEM_NAME=tvOS and CMAKE_OSX_SYSROOT instead of a custom toolchain file and PLATFORM.
- cmake/toolchains/apple.toolchain.cmake
- Removed the custom Apple toolchain file.
- cmake/toolchains/ios.cmake
- Removed the custom iOS toolchain file.
- cmake/toolchains/ios_simulator.cmake
- Removed the custom iOS simulator toolchain file.
- scripts/gha/build_ios_tvos.py
- Updated the Python script to remove references to custom toolchain files and pass native CMake system and sysroot parameters.
- test_mac_ios.sh
- Updated the iOS test script to use CMAKE_SYSTEM_NAME=iOS.
- test_mac_ios_simulator.sh
- Updated the iOS simulator test script to use CMAKE_SYSTEM_NAME=iOS.
Activity
- AustinBenoit created the pull request to clean up CMake for new CMake versions.
- The author confirmed building iOS locally and running integration tests.
- The change was categorized as a build process or documentation change.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in pull request comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩