apple.yml raw

   1  # SPDX-License-Identifier: Unlicense OR MIT
   2  image: debian/testing
   3  packages:
   4   - clang
   5   - cmake
   6   - curl
   7   - autoconf
   8   - libxml2-dev
   9   - libssl-dev
  10   - libz-dev
  11   - llvm-dev # for cctools
  12   - uuid-dev ## for cctools
  13   - libplist-utils # for gogio
  14   - golang
  15  sources:
  16   - https://git.sr.ht/~eliasnaur/applesdks
  17   - https://git.sr.ht/~eliasnaur/gio
  18   - https://git.sr.ht/~eliasnaur/giouiorg
  19   - https://github.com/tpoechtrager/cctools-port.git
  20   - https://github.com/tpoechtrager/apple-libtapi.git
  21   - https://github.com/mackyle/xar.git
  22  environment:
  23     APPLE_TOOLCHAIN_ROOT: /home/build/appletools
  24     PATH: /home/build/go/bin:/usr/bin
  25  tasks:
  26   - prepare_toolchain: |
  27       mkdir -p $APPLE_TOOLCHAIN_ROOT
  28       cd $APPLE_TOOLCHAIN_ROOT
  29       tar xJf /home/build/applesdks/applesdks.tar.xz
  30       mkdir bin tools
  31       cd bin
  32       ln -s ../toolchain/bin/x86_64-apple-darwin19-ld ld
  33       ln -s ../toolchain/bin/x86_64-apple-darwin19-ar ar
  34       ln -s /home/build/cctools-port/cctools/misc/lipo lipo
  35       ln -s ../tools/appletoolchain xcrun
  36       ln -s /usr/bin/plistutil plutil
  37       cd ../tools
  38       ln -s appletoolchain clang-ios
  39       ln -s appletoolchain clang-macos
  40   - install_appletoolchain: |
  41       cd giouiorg
  42       go build -o $APPLE_TOOLCHAIN_ROOT/tools ./cmd/appletoolchain
  43   - build_xar: |
  44       cd xar/xar
  45       ac_cv_lib_crypto_OpenSSL_add_all_ciphers=yes CC=clang ./autogen.sh --prefix=/usr
  46       make
  47       sudo make install
  48   - build_libtapi: |
  49       cd apple-libtapi
  50       INSTALLPREFIX=$APPLE_TOOLCHAIN_ROOT/libtapi ./build.sh
  51       ./install.sh
  52   - build_cctools: |
  53       cd cctools-port/cctools
  54       ./configure --prefix $APPLE_TOOLCHAIN_ROOT/toolchain --with-libtapi=$APPLE_TOOLCHAIN_ROOT/libtapi --target=x86_64-apple-darwin19
  55       make install
  56   - test_macos: |
  57       cd gio
  58       export PATH=/home/build/appletools/bin:$PATH
  59       CC=$APPLE_TOOLCHAIN_ROOT/tools/clang-macos GOOS=darwin CGO_ENABLED=1 go build ./...
  60   - test_ios: |
  61       cd gio
  62       CC=$APPLE_TOOLCHAIN_ROOT/tools/clang-ios GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build -tags ios ./...
  63   - install_gogio: |
  64       cd gio/cmd
  65       go install ./gogio
  66   - test_ios_gogio: |
  67       mkdir tmp
  68       cd tmp
  69       go mod init example.com
  70       go get -d github.com/p9c/p9/pkg/gel/gio/example/kitchen
  71       export PATH=/home/build/appletools/bin:$PATH
  72       gogio -target ios -o app.app github.com/p9c/p9/pkg/gel/gio/example/kitchen
  73