pkgbase=swift-preview pkgname=(swift-preview swift-lldb-preview) _swiftver=3.0.1-PREVIEW-1 pkgver=${_swiftver//-/.} pkgrel=1 pkgdesc="The Swift programming language and debugger - preview release" arch=('i686' 'x86_64') url="http://swift.org/" license=('apache') depends=('python2' 'libutil-linux' 'icu' 'libbsd' 'libedit' 'libxml2' 'sqlite' 'ncurses' 'libkqueue') makedepends=('git' 'cmake' 'ninja' 'swig' 'clang>=3.8' 'python2-six' 'perl' 'python2-sphinx') source=( "swift-${_swiftver}.tar.gz::https://github.com/apple/swift/archive/swift-${_swiftver}.tar.gz" "swift-llvm-${_swiftver}.tar.gz::https://github.com/apple/swift-llvm/archive/swift-${_swiftver}.tar.gz" "swift-clang-${_swiftver}.tar.gz::https://github.com/apple/swift-clang/archive/swift-${_swiftver}.tar.gz" "swift-lldb-${_swiftver}.tar.gz::https://github.com/apple/swift-lldb/archive/swift-${_swiftver}.tar.gz" "swift-cmark-${_swiftver}.tar.gz::https://github.com/apple/swift-cmark/archive/swift-${_swiftver}.tar.gz" "swift-llbuild-${_swiftver}.tar.gz::https://github.com/apple/swift-llbuild/archive/swift-${_swiftver}.tar.gz" "swift-package-manager-${_swiftver}.tar.gz::https://github.com/apple/swift-package-manager/archive/swift-${_swiftver}.tar.gz" "swift-corelibs-xctest-${_swiftver}.tar.gz::https://github.com/apple/swift-corelibs-xctest/archive/swift-${_swiftver}.tar.gz" "swift-corelibs-foundation-${_swiftver}.tar.gz::https://github.com/apple/swift-corelibs-foundation/archive/swift-${_swiftver}.tar.gz" "swift-corelibs-libdispatch-${_swiftver}.tar.gz::https://github.com/apple/swift-corelibs-libdispatch/archive/swift-${_swiftver}.tar.gz" "swift-integration-tests-${_swiftver}.tar.gz::https://github.com/apple/swift-integration-tests/archive/swift-${_swiftver}.tar.gz" "swift-sphinx2.patch" "xar-1.6.patch" ) sha256sums=('09a4c9ad15ab49c36c6c72a1e1747892937c4d24a90b3eeac3c446288511849c' '13db7680025c55e122bb455ed749196e1ea2e41f9157d26c9e9ab2850104916d' '09727ae1b963f95c441ee679295efe8fe7ad3f6cc328b6bb941a80809ed0c8a9' 'f68e8a4dc60c1a782ca1e511181b660333ecb3a243e5e183d50d3325bf5f92bc' '38f50c138dd989a2441e902bf16374cd88138a4813e63995cd27ef8cb4be236a' 'f556a1919a7d0a96b1f99f2b47addf47015057dbe16e6e20b204368175b80773' '02d090811a0ad507a7305d639a3ab15547e364c554a1ded9703f6f67d4ca4f4c' 'c52297b5cfac5cea700b909552a3375ac1f22a7013d3fe2d373f58348a3ef0a3' '378ed451c66322ea2d7fda05c658af6daa4bdd6b7603d6488667bcf0b8241dc2' 'c54db125812205cf454bbe9c8cfded54b9b2a273b222e433be99c17303d8c822' '7cb46a443ad22ca155185be8b480b43c3bf67170b7e9a9fe415d0c3882bb4b29' '93bbe769666aab15b15d12e2423f213b39d6c47237eafc781569698c8367535f' 'df27c2bfeaed6335f49a8815b0b296fd5acc331a6a9361a40f7dfc69a7518da6') prepare() { # Use python2 where appropriate find "$srcdir" -type f -print0 | \ xargs -0 sed -i 's|/usr/bin/env python$|&2|' find "$srcdir/swift-lldb-swift-${_swiftver}" -name Makefile -print0 | \ xargs -0 sed -i 's|python-config|python2-config|g' sed -i '/^cmake_minimum_required/a set(Python_ADDITIONAL_VERSIONS 2.7)' \ "$srcdir/swift-swift-${_swiftver}/CMakeLists.txt" sed -i '/^cmake_minimum_required/a set(Python_ADDITIONAL_VERSIONS 2.7)' \ "$srcdir/swift-lldb-swift-${_swiftver}/CMakeLists.txt" sed -i 's/\/&2/' \ "$srcdir/swift-swift-${_swiftver}/utils/build-script-impl" # Use directory names which build-script expects for sdir in llvm clang lldb cmark llbuild; do ln -sf swift-${sdir}-swift-${_swiftver} ${sdir} done for sdir in corelibs-xctest corelibs-foundation corelibs-libdispatch \ integration-tests do ln -sf swift-${sdir}-swift-${_swiftver} swift-${sdir} done ln -sf swift-swift-${_swiftver} swift ln -sf swift-package-manager-swift-${_swiftver} swiftpm # Sphinx 1.3.5 raises a warning (promoted to error) when using an unknown # syntax highlighting language (like "swift"). ( cd "${srcdir}/swift" && patch -p1 -i "${srcdir}/swift-sphinx2.patch" ) # Fix for xar 1.6.1+ (backported from LLVM trunk) ( cd "${srcdir}/llvm" && patch -p1 -i "${srcdir}/xar-1.6.patch" ) } build() { cd "$srcdir/swift" export SWIFT_SOURCE_ROOT="$srcdir" export LDFLAGS='-ldl -lpthread' export PATH="$PATH:/usr/bin/core_perl" utils/build-script -R \ --lldb --llbuild --swiftpm --xctest --foundation --libdispatch \ -j "$(lscpu --parse=CPU | grep -v '^#' | wc -l)" } check() { cd "$srcdir/swift" export SWIFT_SOURCE_ROOT="$srcdir" utils/build-script -R -t } package_swift-preview() { pkgdesc='The Swift programming language compiler and tools - preview release' provides=('swift-language' 'swift') conflicts=('swift-language-git' 'swift-git' 'swift-bin' 'swift') optdepends=('swift-lldb: Swift REPL and debugger') cd "$srcdir/build/Ninja-ReleaseAssert" install -dm755 "$pkgdir/usr/bin" install -dm755 "$pkgdir/usr/lib/swift" # Swift's components don't provide an install target :( # These are based roughly on what's included in the binary release packages ( cd swift-linux-$CARCH install -m755 bin/swift bin/swift-{demangle,ide-test} "$pkgdir/usr/bin" ln -s swift "$pkgdir/usr/bin/swiftc" ln -s swift "$pkgdir/usr/bin/swift-autolink-extract" install -dm755 "$pkgdir/usr/share/man/man1" install -m644 docs/tools/swift.1 "$pkgdir/usr/share/man/man1" umask 0022 cp -rL lib/swift/{clang,linux,shims} "$pkgdir/usr/lib/swift/" ) ( cd llbuild-linux-$CARCH install -m755 bin/swift-build-tool "$pkgdir/usr/bin" ) ( cd swiftpm-linux-$CARCH install -m755 debug/swift-{build,test,package} "$pkgdir/usr/bin" install -dm755 "$pkgdir/usr/lib/swift/pm" install -m755 lib/swift/pm/libPackageDescription.so "$pkgdir/usr/lib/swift/pm" install -m644 lib/swift/pm/PackageDescription.swiftmodule "$pkgdir/usr/lib/swift/pm" ) ( cd xctest-linux-$CARCH install -m755 libXCTest.so "$pkgdir/usr/lib/swift/linux/" install -m644 XCTest.swiftdoc "$pkgdir/usr/lib/swift/linux/$CARCH" install -m644 XCTest.swiftmodule "$pkgdir/usr/lib/swift/linux/$CARCH" ) ( cd foundation-linux-$CARCH install -m755 Foundation/libFoundation.so "$pkgdir/usr/lib/swift/linux/" install -m644 Foundation/Foundation.swiftdoc "$pkgdir/usr/lib/swift/linux/$CARCH" install -m644 Foundation/Foundation.swiftmodule "$pkgdir/usr/lib/swift/linux/$CARCH" umask 0022 cp -r Foundation/usr/lib/swift/CoreFoundation "$pkgdir/usr/lib/swift/" ) ( cd libdispatch-linux-$CARCH make install DESTDIR="$pkgdir" ) # License file install -dm755 "$pkgdir/usr/share/licenses/swift" install -m644 "$srcdir/swift/LICENSE.txt" "$pkgdir/usr/share/licenses/swift" } package_swift-lldb-preview() { pkgdesc='The Swift programming language debugger (LLDB) and REPL - preview release' depends=('swift-language' 'python2-six') provides=('lldb' 'swift-lldb') conflicts=('lldb' 'swift-lldb') options=('!strip') # Don't strip repl_swift -- we need its symbols cd "$srcdir/build/Ninja-ReleaseAssert" # Install swift-capable lldb ( cd lldb-linux-$CARCH DESTDIR="$pkgdir" ninja install ) # This should be provided from python2-six rm "$pkgdir/usr/lib/python2.7/site-packages/six.py" }