Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GHA: add Android builds for firebase-cpp-sdk #21

Open
wants to merge 34 commits into
base: compnerd/swift
Choose a base branch
from

Conversation

compnerd
Copy link
Collaborator

@compnerd compnerd commented Mar 6, 2024

Introduce the Android builds so that we could start exploring the use of firebase on Android native code.

compnerd and others added 30 commits August 7, 2023 13:12
The C++ Interop efforts in Swift currently have some limitations.  In
particular, it cannot support trivial types with non-trivial
destructors.  As a workaround, provide a copy constructor which can be
used by the Swift interop while using the regular semantics for all
other cases.

A second issue arises in the handling of futures.  Unfortunately, it is
not currently possible to pass an indirect block parameter which
prevents the construction of a callback.  Workaround this by providing
an inline shim to use a direct parameter (i.e. indirect value through a
pointer) which then allows a callback to be formed.

Both of these items are being tracked upstream but seem to be
potentially sufficient to enable the use of Swift for using the C++ SDK
for desktop scenarios.
This adds a minimal build of firebase statically for use with Swift on
Windows to provide the required base libraries.  We build a release only
build intended for re-distribution as a basis for building a library to
access the Firebase APIs from Swift.
Fix repository URL
Correct enclosing namespace for `Firestore`.
Distribute firestore dependency headers
Enable support for ARM64.  Add a matrix to allow building the x64 and ARM64 slices of the SDK.
Indicate that the build is performed in CI, explicitly disable the
static MSVC library linkage.
Use explicit path to python interpreter.
Ensure that we use the same python version across the sub-builds as
`Python3_EXECUTABLE` can be explicitly passed to control the version of
python in use.
We would like to cross-compile to ARM64, so we need to ensure that we
disable the flatc build.
Prebuild flatc manually and use that to build the flatbuffer code.  This
should help us with the cross-compilation for ARM64.
This pins the flatc build to the same revision that will be used in the
build of firebase.
Enable CMP0141 to allow us to embed debug information for Firebase.
Reference some types so that they are included in the CXX module.
This introduces an initial nuget packaging for simpler distribution of
the artifacts.
This will publish the package to ease the consumption of it in the
client.
Remove an extraneous `include` in the path.
Add missing `firebase_util.lib` to the packaging.  Thanks to @jeffdav for identifying the missing library.
compnerd and others added 2 commits December 18, 2023 10:07
Correct the library name to `firestore_util.lib`.
…Bs in the BCNY windows build (#20)

* [windows][build] add a helper script to adjust MSVC debug flags to be Z7 instead of Zi

* [bcny][gh workflow] build firebase with /Z7 for embedded debug information on windows

* roll back to the mainline branch
@compnerd compnerd force-pushed the compnerd/android branch 7 times, most recently from 8a3464c to 2449ca9 Compare March 6, 2024 16:56
Introduce the Android builds so that we could start exploring the use of
firebase on Android native code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants