Skip to content

Instantly share code, notes, and snippets.

@rushiiMachine
Created January 29, 2023 17:12
Show Gist options
  • Save rushiiMachine/1d9c0e587d6bbc3eb44afe8504b26cee to your computer and use it in GitHub Desktop.
Save rushiiMachine/1d9c0e587d6bbc3eb44afe8504b26cee to your computer and use it in GitHub Desktop.
#!/bin/bash
SDK_VERSION="14.5"
TARGET_IOS_VERSION="14"
LLVM_PATH="$HOME/opt/llvm-15.0.6" # only llvm 15 worked for me
cd "$(dirname "$0")/dobby"
rm -rf build || true
export PATH="$LLVM_PATH/bin:$THEOS/toolchain/linux/iphone/bin:$PATH"
# build(arch)
function build() {
local cmake_dir="./build/cmake-build-iphoneos-$1"
# hardcoded path is to fix clang not reading __config_site
local SHARED_FLAGS="\
-isystem $LLVM_PATH/include/x86_64-unknown-linux-gnu/c++/v1/ \
-target $1-apple-ios${TARGET_IOS_VERSION} \
-D TARGET_OS_SIMULATOR=0 \
"
cmake \
-S . \
-B $cmake_dir \
-DCMAKE_SHARED_LINKER_FLAGS=" \
-fuse-ld=$(which ld64.lld) \
-Xlinker -arch -Xlinker $1 \
-Xlinker -platform_version -Xlinker ios -Xlinker ${TARGET_IOS_VERSION} -Xlinker ${SDK_VERSION} \
-Xlinker -dylib \
-Xlinker -syslibroot -Xlinker $THEOS/sdks/iPhoneOS${SDK_VERSION}.sdk \
" \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_C_FLAGS="${SHARED_FLAGS}" \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_CXX_FLAGS="${SHARED_FLAGS}" \
-DCMAKE_SYSTEM_NAME=iOS \
-DCMAKE_SYSTEM_PROCESSOR=$1 \
-DCMAKE_OSX_ARCHITECTURES=$1 \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${TARGET_IOS_VERSION}" \
-DCMAKE_OSX_SYSROOT=$THEOS/sdks/iPhoneOS${SDK_VERSION}.sdk \
-DCMAKE_BUILD_TYPE=Release \
-DDOBBY_GENERATE_SHARED=ON
(cd $cmake_dir && gmake -j8 dobby)
}
build "arm64"
build "arm64e"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment