# Maintainer: Michael Hansen pkgbase=swift-development pkgname=(swift-development swift-lldb-development) _swiftver=DEVELOPMENT-SNAPSHOT-2020-06-29-a pkgver=${_swiftver//-/.} pkgrel=1 pkgdesc="The Swift programming language and debugger - latest development snapshot" arch=('i686' 'x86_64') url="http://swift.org/" license=('apache') depends=('python' 'libutil-linux' 'icu' 'libbsd' 'libedit' 'libxml2' 'sqlite' 'ncurses') makedepends=('git' 'cmake' 'ninja' 'swig' 'clang>=3.8' 'python2-six' 'perl' 'python2-sphinx' 'python2-requests' 'rsync') _libpwq_ref=18437d2be372f4422b207ec6442c8caf7974025d source=( "swift-${_swiftver}.tar.gz::https://github.com/apple/swift/archive/swift-${_swiftver}.tar.gz" "swift-cmark-${_swiftver}.tar.gz::https://github.com/apple/swift-cmark/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-llbuild-${_swiftver}.tar.gz::https://github.com/apple/swift-llbuild/archive/swift-${_swiftver}.tar.gz" "llvm-project-${_swiftver}.tar.gz::https://github.com/apple/llvm-project/archive/swift-${_swiftver}.tar.gz" "swift-package-manager-${_swiftver}.tar.gz::https://github.com/apple/swift-package-manager/archive/swift-${_swiftver}.tar.gz" ) sha256sums=( 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' ) prepare() { # not sure where diagnostics is included, pip install it pip install diagnostics # Use directory names which build-script expects rm -rf llvm-project ln -sf llvm-project-swift-${_swiftver} llvm-project for sdir in cmark llbuild do rm -rf ${sdir} mv swift-${sdir}-swift-${_swiftver} ${sdir} done for sdir in corelibs-xctest corelibs-foundation corelibs-libdispatch \ integration-tests do rm -rf swift-${sdir} mv swift-${sdir}-swift-${_swiftver} swift-${sdir} done rm -rf swift swiftpm mv swift-swift-${_swiftver} swift mv swift-package-manager-swift-${_swiftver} swiftpm } _common_build_params=( --install-prefix=/usr --lldb --llbuild --swiftpm --xctest --foundation --libdispatch ) build() { cd "$srcdir/swift" export SWIFT_SOURCE_ROOT="$srcdir" export PATH="$PATH:/usr/bin/core_perl" utils/build-script -R "${_common_build_params[@]}" # Run the build a second time, this time with SourceKit enabled # This is required because SourceKit depends on libdispatch, which # in turn depends on swift, where SourceKit is located utils/build-script -R "${_common_build_params[@]}" \ --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT=TRUE" \ --reconfigure # Fix the lldb swig binding's import path (matches Arch LLDB package) # Need to do this before check(), since the test suite uses the lldb # python bindings directly from the build dir sed -i "/import_module('_lldb')/s/_lldb/lldb.&/" \ "${srcdir}/build/Ninja-ReleaseAssert/lldb-linux-${CARCH}/lib/python2.7/site-packages/lldb/__init__.py" } check() { cd "$srcdir/swift" export SWIFT_SOURCE_ROOT="$srcdir" utils/build-script -R -t } package_swift-development() { pkgdesc='The Swift programming language compiler and tools - development snapshot' provides=('swift-language' 'swift') conflicts=('swift-language-git' 'swift-git' 'swift-bin' 'swift') optdepends=('swift-lldb: Swift REPL and debugger') cd "$srcdir/swift" export SWIFT_SOURCE_ROOT="$srcdir" utils/build-script -R "${_common_build_params[@]}" \ --install-destdir="$pkgdir" \ --install-llbuild --install-swiftpm --install-xctest \ --install-foundation cd "$srcdir/build/Ninja-ReleaseAssert" # Some projects' install targets don't work correctly :( ( 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 -m644 lib/libsourcekitdInProc.so "$pkgdir/usr/lib" 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 libdispatch-linux-$CARCH make install DESTDIR="$pkgdir" ) # Some install targets provide an empty /usr/local/include rmdir "$pkgdir/usr/local/include" rmdir "$pkgdir/usr/local" # License file install -dm755 "$pkgdir/usr/share/licenses/swift" install -m644 "$srcdir/swift/LICENSE.txt" "$pkgdir/usr/share/licenses/swift" } package_swift-lldb-development() { pkgdesc='The Swift programming language debugger (LLDB) and REPL - development snapshot' depends=('swift-development' 'python2-six') provides=('lldb' 'swift-lldb') conflicts=('lldb' 'swift-lldb') options=('!strip') # Don't strip repl_swift -- we need its symbols cd "$srcdir/swift" export SWIFT_SOURCE_ROOT="$srcdir" utils/build-script -R "${_common_build_params[@]}" \ --install-destdir="$pkgdir" \ --install-lldb # This should be provided from python2-six rm "$pkgdir/usr/lib/python2.7/site-packages/six.py" rm "$pkgdir/usr/lib/python2.7/site-packages/six.pyc" }