Repository navigation
Build iOS libffi for the device target and cache more build outputs - #63
Merged
Merged
Conversation
CI vendors the lockfile SHAs (opam monorepo pull fills duniverse before the pin-depends clone loop, which then skips existing dirs). The lockfile still pointed at drive 7f407b0, which predates the detach-subtree patch op, so every drive test died in Drive.Model.apply_op with a non-exhaustive match (26 failures). ocaml-signal had drifted the same way (868c145 -> df355e1).
- build-mobile-ios-device.sh now builds a real iOS libffi like the
simulator script does: ctypes-foreign's stub compile was falling back
to the host CLT ffi.h ("not available on iOS"), and the archive link
now gets -L for the vendored libffi.a. PKG_CONFIG_PATH points the
ctypes pkg-config discovery at the toolchain prefix.
- build-ios-release.yml caches _build/ios-core (incremental dune),
apple/.build + DerivedData, and bundler gems under vendor/bundle.
- build-android.yml caches android/app/.cxx + build/intermediates for
incremental CMake/Gradle rebuilds.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the Build-iOS failure and adds the requested caching.
libffi fix:
build-mobile-ios-device.shnow builds a real iOS libffi, same as the simulator script — the ctypes-foreign stub compile was falling back to the host CLTffi.h('ffi_type_*' is unavailable: not available on iOS, 20 errors). The device path now:libffi.ainto$toolchain_root/ios/libffi-$triple(inside the cached_build/apple-toolchains)PKG_CONFIG_PATH=$ffi_prefix/lib/pkgconfigtobuild-mobile-ocaml.shso ctypes discovers the right headers-L$ffi_prefix/libtonative_link_inputsso the Xcode archive link resolves-lffiCaching (iOS + Android, in addition to the existing opam-root/opam-switch/duniverse/toolchain caches):
_build/ios-core— incremental dune objects (sha key + prefix restore-keys)apple/.build+~/Library/Developer/Xcode/DerivedData— SwiftPM/Xcode incremental stateapple/App/vendor/bundle— bundler gems (keyed on Gemfile + workflow)android/app/.cxx+android/app/build/intermediates— CMake/Gradle intermediates (sha key + prefix restore-keys)Link to Devin session: https://app.devin.ai/sessions/3fbb55f8acd849db864aa2e7287c0cea
Open in Devin Desktop: https://app.devin.ai/desktop/session/3fbb55f8acd849db864aa2e7287c0cea?variant=devin
Requested by: @tiensonqin