# SPDX-License-Identifier: Unlicense OR MIT image: debian/stable packages: - clang - cmake - curl - autoconf - libxml2-dev - libssl-dev - libz-dev - llvm-dev # cctools - uuid-dev # cctools - ninja-build # cctools - systemtap-sdt-dev # cctools - libbsd-dev # cctools - linux-libc-dev # cctools - libplist-utils # for gogio sources: - https://git.sr.ht/~eliasnaur/applesdks - https://git.sr.ht/~eliasnaur/gio - https://git.sr.ht/~eliasnaur/giouiorg - https://github.com/tpoechtrager/cctools-port - https://github.com/tpoechtrager/apple-libtapi - https://github.com/tpoechtrager/apple-libdispatch - https://github.com/mackyle/xar environment: APPLE_TOOLCHAIN_ROOT: /home/build/appletools PATH: /home/build/sdk/go/bin:/home/build/go/bin:/usr/bin tasks: - install_go: | mkdir -p /home/build/sdk curl -s https://dl.google.com/go/go1.24.2.linux-amd64.tar.gz | tar -C /home/build/sdk -xzf - - prepare_toolchain: | mkdir -p $APPLE_TOOLCHAIN_ROOT cd $APPLE_TOOLCHAIN_ROOT tar xJf /home/build/applesdks/applesdks.tar.xz mkdir bin tools cd bin ln -s ../toolchain/bin/x86_64-apple-darwin19-ld ld ln -s ../toolchain/bin/x86_64-apple-darwin19-ar ar ln -s /home/build/cctools-port/cctools/misc/lipo lipo ln -s ../tools/appletoolchain xcrun ln -s /usr/bin/plistutil plutil cd ../tools ln -s appletoolchain clang-ios ln -s appletoolchain clang-macos - install_appletoolchain: | cd giouiorg go build -o $APPLE_TOOLCHAIN_ROOT/tools ./cmd/appletoolchain - build_libdispatch: | cd apple-libdispatch cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_INSTALL_PREFIX=$APPLE_TOOLCHAIN_ROOT/libdispatch . ninja ninja install - build_xar: | cd xar/xar ac_cv_lib_crypto_OpenSSL_add_all_ciphers=yes CC=clang ./autogen.sh --prefix=/usr make sudo make install - build_libtapi: | cd apple-libtapi INSTALLPREFIX=$APPLE_TOOLCHAIN_ROOT/libtapi ./build.sh ./install.sh - build_cctools: | cd cctools-port/cctools ./configure --target=x86_64-apple-darwin19 --prefix $APPLE_TOOLCHAIN_ROOT/toolchain --with-libtapi=$APPLE_TOOLCHAIN_ROOT/libtapi --with-libdispatch=$APPLE_TOOLCHAIN_ROOT/libdispatch --with-libblocksruntime=$APPLE_TOOLCHAIN_ROOT/libdispatch make install - test_macos: | cd gio export PATH=/home/build/appletools/bin:$PATH CC=$APPLE_TOOLCHAIN_ROOT/tools/clang-macos GOOS=darwin CGO_ENABLED=1 go build ./... - test_ios: | cd gio CGO_CFLAGS=-Wno-deprecated-module-dot-map CC=$APPLE_TOOLCHAIN_ROOT/tools/clang-ios GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build -tags ios ./...