Skip to content

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

Clone this wiki locally