mirror of
https://github.com/jkcoxson/idevice.git
synced 2026-03-02 06:26:15 +01:00
75 lines
2.6 KiB
Makefile
75 lines
2.6 KiB
Makefile
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
|
||
cargo fmt -- --check
|
||
macos-ci-check: ci-check xcframework
|
||
cd tools && cargo build --release --target x86_64-apple-darwin
|
||
windows-ci-check: build-ffi-native build-tools-native build-cpp
|
||
|
||
[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 -S .. -B . -DCMAKE_BUILD_TYPE=Release
|
||
cmake --build . --config Release --parallel
|
||
|
||
[working-directory: 'ffi/examples/build']
|
||
build-c: build-ffi-native create-example-build-folder
|
||
cmake -S .. -B . -DCMAKE_BUILD_TYPE=Release
|
||
cmake --build . --config Release --parallel
|
||
|
||
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)" \
|
||
IPHONEOS_DEPLOYMENT_TARGET=17.0 \
|
||
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
|
||
|