Files
idevice/justfile
2025-08-12 09:57:22 -06:00

70 lines
2.3 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
check-features:
cd idevice
cargo hack check --feature-powerset --no-dev-deps
cd ..
ci-check: build-ffi-native build-tools-native build-cpp build-c
cargo clippy --all-targets --all-features -- -D warnings
macos-ci-check: ci-check xcframework
cd tools && cargo build --release --target x86_64-apple-darwin
[working-directory: 'ffi']
build-ffi-native:
cargo build --release
[working-directory: 'tools']
build-tools-native:
cargo build --release
create-example-build-folder:
mkdir -p cpp/examples/build
mkdir -p ffi/examples/build
[working-directory: 'cpp/examples/build']
build-cpp: build-ffi-native create-example-build-folder
cmake .. && make
[working-directory: 'ffi/examples/build']
build-c: build-ffi-native create-example-build-folder
cmake .. && make
xcframework: apple-build
rm -rf swift/IDevice.xcframework
rm -rf swift/libs
cp ffi/idevice.h swift/include/idevice.h
mkdir swift/libs
lipo -create -output swift/libs/idevice-ios-sim.a \
target/aarch64-apple-ios-sim/release/libidevice_ffi.a \
target/x86_64-apple-ios/release/libidevice_ffi.a
lipo -create -output swift/libs/idevice-macos.a \
target/aarch64-apple-darwin/release/libidevice_ffi.a \
target/x86_64-apple-darwin/release/libidevice_ffi.a
xcodebuild -create-xcframework \
-library target/aarch64-apple-ios/release/libidevice_ffi.a -headers swift/include \
-library swift/libs/idevice-ios-sim.a -headers swift/include \
-library swift/libs/idevice-macos.a -headers swift/include \
-output swift/IDevice.xcframework
zip -r swift/bundle.zip swift/IDevice.xcframework
openssl dgst -sha256 swift/bundle.zip
[working-directory: 'ffi']
apple-build: # requires a Mac
# iOS device build
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$(xcrun --sdk iphoneos --show-sdk-path)" \
cargo build --release --target aarch64-apple-ios --features obfuscate
# iOS Simulator (arm64)
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$(xcrun --sdk iphonesimulator --show-sdk-path)" \
cargo build --release --target aarch64-apple-ios-sim
# iOS Simulator (x86_64)
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=$(xcrun --sdk iphonesimulator --show-sdk-path)" \
cargo build --release --target x86_64-apple-ios
# macOS (native) no special env needed
cargo build --release --target aarch64-apple-darwin
cargo build --release --target x86_64-apple-darwin