Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 49 additions & 1 deletion PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ pkgname=(
'clang-analyzer-svn'
'clang-compiler-rt-svn'
'clang-tools-extra-svn'
'libc++-svn'
'libc++abi-svn'
)
_pkgname='llvm'

Expand Down Expand Up @@ -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'
)
Expand All @@ -58,6 +62,8 @@ sha256sums=(
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48'
)

Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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: