diff --git a/PKGBUILD b/PKGBUILD index dbc3199..bfe4a42 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -19,6 +19,8 @@ pkgname=( 'clang-analyzer-svn' 'clang-compiler-rt-svn' 'clang-tools-extra-svn' + 'libc++-svn' + 'libc++abi-svn' ) _pkgname='llvm' @@ -48,6 +50,8 @@ source=( 'clang::svn+http://llvm.org/svn/llvm-project/cfe/trunk' 'clang-tools-extra::svn+http://llvm.org/svn/llvm-project/clang-tools-extra/trunk' 'compiler-rt::svn+http://llvm.org/svn/llvm-project/compiler-rt/trunk' + 'libcxx::svn+http://llvm.org/svn/llvm-project/libcxx/trunk' + 'libcxxabi::svn+http://llvm.org/svn/llvm-project/libcxxabi/trunk' 'lld::svn+http://llvm.org/svn/llvm-project/lld/trunk' 'llvm-Config-llvm-config.h' ) @@ -58,6 +62,8 @@ sha256sums=( 'SKIP' 'SKIP' 'SKIP' + 'SKIP' + 'SKIP' '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48' ) @@ -110,7 +116,9 @@ _install_licenses() { find "${1}" \ \( \ -path "${srcdir}/${_pkgname}/tools/clang" -o \ - -path "${srcdir}/${_pkgname}/projects/compiler-rt" \ + -path "${srcdir}/${_pkgname}/projects/compiler-rt" -o \ + -path "${srcdir}/${_pkgname}/projects/libcxx" -o \ + -path "${srcdir}/${_pkgname}/projects/libcxxabi" \ \) -prune -o \ \( \ -iname 'license*' -o \ @@ -148,6 +156,8 @@ prepare() { svn export --force "${srcdir}/clang" tools/clang svn export --force "${srcdir}/clang-tools-extra" tools/clang/tools/extra svn export --force "${srcdir}/compiler-rt" projects/compiler-rt + svn export --force "${srcdir}/libcxx" projects/libcxx + svn export --force "${srcdir}/libcxxabi" projects/libcxxabi svn export --force "${srcdir}/lld" tools/lld mkdir -p "${srcdir}/build" @@ -184,6 +194,8 @@ build() { -DFFI_INCLUDE_DIR:PATH="$(pkg-config --variable=includedir libffi)" \ -DFFI_LIBRARY_DIR:PATH="$(pkg-config --variable=libdir libffi)" \ -DLLVM_BUILD_DOCS:BOOL=ON \ + -DLLVM_TOOL_LIBCXX_BUILD:BOOL=ON \ + -DLLVM_TOOL_LIBCXXABI_BUILD:BOOL=ON \ -DLLVM_ENABLE_SPHINX:BOOL=ON \ -DSPHINX_OUTPUT_HTML:BOOL=ON \ -DSPHINX_OUTPUT_MAN:BOOL=ON \ @@ -237,6 +249,11 @@ package_llvm-svn() { mv "${pkgdir}/usr/lib/ocaml" "${srcdir}/ocaml.lib" mv "${pkgdir}/usr/share/doc/llvm/ocaml-html" "${srcdir}/ocaml.doc" + # Remove libc++ files + rm -rf "${pkgdir}/usr/include/c++" "${pkgdir}/usr/share/doc/libcxx" + rm -f "${pkgdir}/usr/lib/libc++.*" "${pkgdir}/usr/lib/libc++abi.*" + rm -f "${pkgdir}/usr/lib/libc++experimental.a" + if [[ "${CARCH}" == "x86_64" ]]; then # Needed for multilib (https://bugs.archlinux.org/task/29951) # Header stubs are taken from Fedora @@ -455,4 +472,35 @@ package_clang-tools-extra-svn() { _install_licenses "${srcdir}/clang-tools-extra" } +package_libc++-svn() { + pkgdesc='A new implementation of the C++ standard library, targeting C++11' + url='https://libcxx.llvm.org/' + depends=( + "libc++abi-svn=${pkgver}-${pkgrel}" + ) + provides=('libc++') + replaces=('libc++') + conflicts=('libc++') + + cd "${srcdir}/build/projects/libcxx" + + make DESTDIR="${pkgdir}" install + + _install_licenses "${srcdir}/libcxx" +} + +package_libc++abi-svn() { + pkgdesc='A new implementation of low level support for a standard C++ library' + url='https://libcxxabi.llvm.org/' + provides=('libc++abi') + replaces=('libc++abi') + conflicts=('libc++abi') + + cd "${srcdir}/build/projects/libcxxabi" + + make DESTDIR="${pkgdir}" install + + _install_licenses "${srcdir}/libcxxabi" +} + # vim:set ts=4 sts=4 sw=4 et: