-
Notifications
You must be signed in to change notification settings - Fork 3
Build for iOS with Xcode
Chen jun hao edited this page May 27, 2022
·
1 revision
Build library for iPhoneOS:
cd <root>
mkdir -p build-ios
cd build-ios
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake -DIOS_PLATFORM=OS -DIOS_ARCH="armv7;arm64;arm64e" \
-DENABLE_BITCODE=1 -DENABLE_ARC=0 -DENABLE_VISIBILITY=0 \
-DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \
-DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \
-DOpenMP_libomp_LIBRARY="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libomp.a" \
-DNCNN_BUILD_BENCHMARK=OFF ..
cmake --build . -j 8
cmake --build . --target install
Build library for iPhoneSimulator:
cd <root>
mkdir -p build-ios-sim
cd build-ios-sim
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake -DIOS_PLATFORM=SIMULATOR -DIOS_ARCH="i386;x86_64" \
-DENABLE_BITCODE=1 -DENABLE_ARC=0 -DENABLE_VISIBILITY=0 \
-DOpenMP_C_FLAGS="-Xclang -fopenmp" -DOpenMP_CXX_FLAGS="-Xclang -fopenmp" \
-DOpenMP_C_LIB_NAMES="libomp" -DOpenMP_CXX_LIB_NAMES="libomp" \
-DOpenMP_libomp_LIBRARY="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libomp.a" \
-DNCNN_BUILD_BENCHMARK=OFF ..
cmake --build . -j 8
cmake --build . --target install
Package otter framework:
cd <root>
mkdir -p otter.framework/Versions/A/Headers
mkdir -p otter.framework/Versions/A/Resources
ln -s A otter.framework/Versions/Current
ln -s Versions/Current/Headers otter.framework/Headers
ln -s Versions/Current/Resources otter.framework/Resources
ln -s Versions/Current/otter otter.framework/otter
lipo -create build-ios/install/lib/libotter.a build-ios-sim/install/lib/libotter.a -o otter.framework/Versions/A/otter
cp -r build-ios/install/include/* otter.framework/Versions/A/Headers/
sed -e 's/__NAME__/otter/g' -e 's/__IDENTIFIER__/com.duncan.otter/g' -e 's/__VERSION__/1.0/g' Info.plist > otter.framework/Versions/A/Resources/Info.plist