|
| 1 | +TERMUX_PKG_HOMEPAGE=https://www.swift.org/ |
| 2 | +TERMUX_PKG_DESCRIPTION="Swift is a high-performance system programming language" |
| 3 | +TERMUX_PKG_LICENSE="Apache-2.0, NCSA" |
| 4 | +TERMUX_PKG_VERSION=5.1.4 |
| 5 | +TERMUX_PKG_SHA256=46765a6a604be0b11cb4660bf5adbef8a95d2b74b03aa46860ef81a5ba92d5e8 |
| 6 | +TERMUX_PKG_SRCURL=https://github.com/apple/swift/archive/swift-$TERMUX_PKG_VERSION-RELEASE.tar.gz |
| 7 | +TERMUX_PKG_DEPENDS="binutils-gold, libc++, ndk-sysroot, libandroid-spawn, libcurl, libicu, libsqlite, libuuid, libxml2, llbuild" |
| 8 | +TERMUX_PKG_BUILD_DEPENDS="cmake, ninja, perl, pkg-config, python2, rsync" |
| 9 | +TERMUX_PKG_BLACKLISTED_ARCHES="arm, i686, x86_64" |
| 10 | +TERMUX_PKG_NO_STATICSPLIT=true |
| 11 | + |
| 12 | +SWIFT_COMPONENTS="autolink-driver;compiler;clang-resource-dir-symlink;stdlib;swift-remote-mirror;sdk-overlay;parser-lib;license;sourcekit-inproc" |
| 13 | +SWIFT_BUILD_FLAGS="-R --no-assertions --llvm-targets-to-build='X86;ARM;AArch64' |
| 14 | + --xctest -b -p -j $TERMUX_MAKE_PROCESSES --build-subdir=. --install-destdir=/ |
| 15 | + --install-prefix=$TERMUX_PREFIX --swift-install-components='$SWIFT_COMPONENTS' |
| 16 | + --build-swift-static-stdlib --build-swift-static-sdk-overlay" |
| 17 | + |
| 18 | +termux_step_post_extract_package() { |
| 19 | + if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then |
| 20 | + termux_error_exit "Package '$TERMUX_PKG_NAME' is not ready for off-device builds." |
| 21 | + fi |
| 22 | + |
| 23 | + if [ "$TERMUX_PKG_QUICK_REBUILD" != "true" ]; then |
| 24 | + # The Swift build-script requires a particular organization of source directories, |
| 25 | + # which the following sets up. |
| 26 | + mkdir TEMP |
| 27 | + mv [a-zA-S]* TEMP/ |
| 28 | + mv TEMP swift |
| 29 | + |
| 30 | + declare -A library_checksums |
| 31 | + library_checksums[swift-cmark]=dc02253fdc5ef4027551e5ab5cb8eef22abd7a5bb2df6a2baf02e17afdeeb5cd |
| 32 | + library_checksums[llvm-project]=0b3606be7b542aff28210c96639ad19a4b982e999fb3e86748198d8150f5f3d3 |
| 33 | + library_checksums[swift-corelibs-libdispatch]=079cff5dd5b05381e9cf3094d445652fa9990a7d3a46e122f1e1dcdb2c54ddc1 |
| 34 | + library_checksums[swift-corelibs-foundation]=f6e09efb3998d0a3d449f92ea809c86346c66e3b2d83ed19f3335bcb29401416 |
| 35 | + library_checksums[swift-corelibs-xctest]=5996eb4384c8f095d912424439c5a1b7fc9ff57529f9ac5ecbc04e82d22ebca2 |
| 36 | + library_checksums[swift-llbuild]=537683d7f1a73b48017d7cd7cd587c4b75c55cc5584e206cc0f8f92f6f4dd3ea |
| 37 | + library_checksums[swift-package-manager]=b421e7e171b94521e364b6ea21ddd6300fe28bce3a0fcbc9f5ed6db496f148a6 |
| 38 | + |
| 39 | + for library in "${!library_checksums[@]}"; do \ |
| 40 | + termux_download \ |
| 41 | + https://github.com/apple/$library/archive/swift-$TERMUX_PKG_VERSION-RELEASE.tar.gz \ |
| 42 | + $TERMUX_PKG_CACHEDIR/$library-$TERMUX_PKG_VERSION.tar.gz \ |
| 43 | + ${library_checksums[$library]} |
| 44 | + tar xf $TERMUX_PKG_CACHEDIR/$library-$TERMUX_PKG_VERSION.tar.gz |
| 45 | + mv $library-swift-${TERMUX_PKG_VERSION}-RELEASE $library |
| 46 | + done |
| 47 | + |
| 48 | + mv swift-cmark cmark |
| 49 | + |
| 50 | + ln -s $PWD/llvm-project/llvm |
| 51 | + ln -s $PWD/llvm-project/compiler-rt |
| 52 | + ln -s $PWD/llvm-project/clang |
| 53 | + |
| 54 | + mv swift-llbuild llbuild |
| 55 | + mv swift-package-manager swiftpm |
| 56 | + fi |
| 57 | +} |
| 58 | + |
| 59 | +termux_step_pre_configure() { |
| 60 | + if [ "$TERMUX_PKG_QUICK_REBUILD" != "true" ]; then |
| 61 | + cd llbuild |
| 62 | + # The bare minimum patches needed from the existing llbuild package |
| 63 | + patch -p1 < $TERMUX_PKG_BUILDER_DIR/../llbuild/CMakeLists.txt.patch |
| 64 | + patch -p1 < $TERMUX_PKG_BUILDER_DIR/../llbuild/include-llvm-Config-config.h.patch |
| 65 | + patch -p1 < $TERMUX_PKG_BUILDER_DIR/../llbuild/lib-llvm-Support-CmakeLists.txt.patch |
| 66 | + fi |
| 67 | +} |
| 68 | + |
| 69 | +termux_step_configure() { |
| 70 | + ln -sf $(which python2) python |
| 71 | + export PATH=$TERMUX_PKG_BUILDDIR:$PATH |
| 72 | +} |
| 73 | + |
| 74 | +termux_step_make() { |
| 75 | + SWIFT_BUILD_ROOT=$TERMUX_PKG_BUILDDIR $TERMUX_PKG_SRCDIR/swift/utils/build-script \ |
| 76 | + $SWIFT_BUILD_FLAGS |
| 77 | +} |
| 78 | + |
| 79 | +termux_step_make_install() { |
| 80 | + SWIFT_BUILD_ROOT=$TERMUX_PKG_BUILDDIR $TERMUX_PKG_SRCDIR/swift/utils/build-script \ |
| 81 | + $SWIFT_BUILD_FLAGS --install-swift --install-libdispatch --install-foundation \ |
| 82 | + --install-xctest --install-swiftpm --llvm-install-components=IndexStore |
| 83 | + |
| 84 | + mkdir -p $TERMUX_PREFIX/lib/swift/pm/llbuild |
| 85 | + cp llbuild-android-aarch64/lib/libllbuildSwift.so $TERMUX_PREFIX/lib/swift/pm/llbuild |
| 86 | +} |
0 commit comments