summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLone_Wolf2023-05-14 17:19:09 +0200
committerLone_Wolf2023-05-14 17:19:09 +0200
commitb3627db2d72d13d329902dca4a84c555bd44f4f5 (patch)
treeb9a7a2651676a39082d5c6b038c8b42becbc5c9c
parentbeaa8d3e5e4bcb7131dad7b8ca5e0f488abd16b7 (diff)
downloadaur-b3627db2d72d13d329902dca4a84c555bd44f4f5.tar.gz
moved spirv-llvm-translator to separate package, split clang & llvm files
-rw-r--r--.SRCINFO45
-rw-r--r--PKGBUILD112
2 files changed, 85 insertions, 72 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9758642a451d..3b1f93e71d8e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = llvm-minimal-git
- pkgver = 17.0.0_r457944.9ece8753d5e6
- pkgrel = 2
+ pkgver = 17.0.0_r460868.6e19eea02bbe
+ pkgrel = 1
url = https://llvm.org/
arch = x86_64
license = custom:Apache 2.0 with LLVM Exception
@@ -13,33 +13,22 @@ pkgbase = llvm-minimal-git
makedepends = libxcrypt
makedepends = python
makedepends = python-setuptools
- makedepends = spirv-headers-git
- makedepends = spirv-tools-git
- options = staticlibs
options = !lto
- source = llvm-project::git+https://github.com/llvm/llvm-project.git
+ source = git+https://github.com/llvm/llvm-project.git
source = local://llvm-config.h
- source = git+https://github.com/KhronosGroup/SPIRV-LLVM-Translator.git
md5sums = SKIP
md5sums = 295c343dcd457dc534662f011d7cff1a
- md5sums = SKIP
sha512sums = SKIP
sha512sums = 75e743dea28b280943b3cc7f8bbb871b57d110a7f2b9da2e6845c1c36bf170dd883fca54e463f5f49e0c3effe07fbd0db0f8cf5a12a2469d3f792af21a73fcdd
- sha512sums = SKIP
pkgname = llvm-minimal-git
pkgdesc = Collection of modular and reusable compiler and toolchain technologies
- depends = llvm-libs-minimal-git=17.0.0_r457944.9ece8753d5e6-2
- depends = clang-libs-minimal-git=17.0.0_r457944.9ece8753d5e6-2
- depends = perl
+ depends = llvm-libs-minimal-git=17.0.0_r460868.6e19eea02bbe-1
+ depends = clang-libs-minimal-git=17.0.0_r460868.6e19eea02bbe-1
optdepends = python: for using lit (LLVM Integrated Tester)
optdepends = python-setuptools: for using lit
provides = llvm
- provides = compiler-rt
- provides = clang
conflicts = llvm
- conflicts = compiler-rt
- conflicts = clang
pkgname = llvm-libs-minimal-git
pkgdesc = LLVM runtime libraries, trunk version
@@ -52,15 +41,23 @@ pkgname = llvm-libs-minimal-git
optdepends = llvm-libs: for LLVMgold linker
provides = llvm-libs
+pkgname = clang-minimal-git
+ pkgdesc = C language family frontend for LLVM (git version)
+ depends = llvm-libs-minimal-git
+ depends = clang-libs-minimal-git
+ depends = gcc
+ optdepends = openmp: OpenMP support in clang with -fopenmp
+ optdepends = python: for scan-view, scan-build, git-clang-format, clang-rename and python bindings
+ optdepends = llvm-minimal-git: referenced by some clang headers
+ provides = compiler-rt
+ provides = clang
+ provides = clang-analyzer
+ provides = clang-tools-extra
+ conflicts = compiler-rt
+ conflicts = clang
+
pkgname = clang-libs-minimal-git
pkgdesc = clang runtime libraries, trunk version
- depends = llvm-libs-minimal-git=17.0.0_r457944.9ece8753d5e6-2
+ depends = llvm-libs-minimal-git=17.0.0_r460868.6e19eea02bbe-1
provides = clang-libs
conflicts = clang-libs
-
-pkgname = spirv-llvm-translator-minimal-git
- pkgdesc = Tool and a library for bi-directional translation between SPIR-V and LLVM IR, trunk version
- depends = llvm-minimal-git=17.0.0_r457944.9ece8753d5e6-2
- depends = spirv-tools-git
- provides = spirv-llvm-translator
- conflicts = spirv-llvm-translator
diff --git a/PKGBUILD b/PKGBUILD
index c2c643bec53f..1e1308bfbe06 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,4 +1,5 @@
# Maintainer: Lone_Wolf <lone_wolf@klaas-de-kat.nl>
+# Contributor: blackmoon3 <https://github.com/blacksky3>
# Contributor: yurikoles <root@yurikoles.com>
# Contributor: bearoso <bearoso@gmail.com>
# Contributor: Luchesar V. ILIEV <luchesar%2eiliev%40gmail%2ecom>
@@ -15,28 +16,25 @@
pkgbase=llvm-minimal-git
-pkgname=('llvm-minimal-git' 'llvm-libs-minimal-git' 'clang-libs-minimal-git' 'spirv-llvm-translator-minimal-git')
-pkgver=17.0.0_r457944.9ece8753d5e6
-pkgrel=2
+pkgname=(llvm-minimal-git llvm-libs-minimal-git clang-minimal-git clang-libs-minimal-git)
+pkgver=17.0.0_r460868.6e19eea02bbe
+pkgrel=1
arch=('x86_64')
url="https://llvm.org/"
license=('custom:Apache 2.0 with LLVM Exception')
-makedepends=('git' 'cmake' 'libffi' 'libedit' 'ncurses' 'libxml2'
- 'libxcrypt' 'python' 'python-setuptools' 'spirv-headers-git' 'spirv-tools-git')
-source=("llvm-project::git+https://github.com/llvm/llvm-project.git"
+makedepends=(git cmake libffi libedit ncurses libxml2
+ libxcrypt python python-setuptools)
+source=("git+https://github.com/llvm/llvm-project.git"
'local://llvm-config.h'
- "git+https://github.com/KhronosGroup/SPIRV-LLVM-Translator.git"
- )
+)
md5sums=('SKIP'
- '295c343dcd457dc534662f011d7cff1a'
- 'SKIP')
+ '295c343dcd457dc534662f011d7cff1a')
sha512sums=('SKIP'
- '75e743dea28b280943b3cc7f8bbb871b57d110a7f2b9da2e6845c1c36bf170dd883fca54e463f5f49e0c3effe07fbd0db0f8cf5a12a2469d3f792af21a73fcdd'
- 'SKIP')
+ '75e743dea28b280943b3cc7f8bbb871b57d110a7f2b9da2e6845c1c36bf170dd883fca54e463f5f49e0c3effe07fbd0db0f8cf5a12a2469d3f792af21a73fcdd')
-options=('staticlibs' '!lto')
+options=('!lto')
# explicitly disable lto to reduce number of build hangs / test failures
# LIT by default uses all available cores. this can lead to heavy stress on systems making them unresponsive.
@@ -92,11 +90,6 @@ build() {
-D LLVM_ENABLE_BINDINGS=OFF \
-D LLVM_ENABLE_PROJECTS="compiler-rt;clang-tools-extra;clang" \
-D LLVM_ENABLE_DUMP=ON \
- -D LLVM_EXTERNAL_PROJECTS="SPIRV-LLVM-Translator" \
- -D LLVM_EXTERNAL_SPIRV_LLVM_TRANSLATOR_SOURCE_DIR="$srcdir"/SPIRV-LLVM-Translator \
- -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv/ \
- -D LLVM_SPIRV_INCLUDE_TESTS=ON \
- -D BASE_LLVM_VERSION=17.0.0 \
-D LLVM_LIT_ARGS="$LITFLAGS"" -sv --ignore-fail" \
-Wno-dev
@@ -107,14 +100,13 @@ check() {
make -C _build check-llvm
make -C _build check-clang
make -C _build check-clang-tools
- make -C _build check-llvm-spirv
}
package_llvm-minimal-git() {
pkgdesc="Collection of modular and reusable compiler and toolchain technologies"
- depends=(llvm-libs-minimal-git="$pkgver-$pkgrel" clang-libs-minimal-git="$pkgver-$pkgrel" 'perl')
- provides=('llvm' 'compiler-rt' 'clang')
- conflicts=('llvm' 'compiler-rt' 'clang')
+ depends=(llvm-libs-minimal-git="$pkgver-$pkgrel" clang-libs-minimal-git="$pkgver-$pkgrel")
+ provides=('llvm')
+ conflicts=('llvm')
optdepends=('python: for using lit (LLVM Integrated Tester)'
'python-setuptools: for using lit'
)
@@ -124,8 +116,9 @@ package_llvm-minimal-git() {
# Include lit for running lit-based tests in other projects
pushd "$srcdir"/llvm-project/llvm/utils/lit
python3 setup.py install --root="$pkgdir" -O1
+ # -O1 ensures the python files for lit will be optimized
popd
-
+
# Remove files which conflict with repo llvm-libs
rm "$pkgdir"/usr/lib/{LLVMgold,lib{LLVM,LTO}}.so
rm "$pkgdir"/usr/lib/libRemarks.so
@@ -139,20 +132,19 @@ package_llvm-minimal-git() {
# The clang runtime libraries go into clang-libs-minimal-git
mv -f "$pkgdir"/usr/lib/libclang{,-cpp}.so* "$srcdir"/clang-libs/usr/lib
- # all spirv-llvm-translator files go to spirv-llvm-translator-minimal-git
- mv "$pkgdir"/usr/bin/llvm-spirv "$srcdir"/spirv-llvm-translator/usr/bin
- mv "$pkgdir"/usr/include/LLVMSPIRVLib/* "$srcdir"/spirv-llvm-translator/usr/include/LLVMSPIRVLib/
- mv "$pkgdir"/usr/lib/libLLVMSPIRVLib.a "$srcdir"/spirv-llvm-translator/usr/lib
- mv "$pkgdir"/usr/lib/pkgconfig/LLVMSPIRVLib.pc "$srcdir"/spirv-llvm-translator/usr/lib/pkgconfig
-
- # llvm project uses /usr/libexec and setting CMAKE_INSTALL_LIBEXECDIR doesn't change that.
+ # clang-minimal-git files go to a separate package
+ mkdir -p "$srcdir"/clang/usr/{bin,include,lib,lib/cmake,share}
+ mv -f "$pkgdir"/usr/lib/{libear,libscanbuild,libclang*.a,clang} "$srcdir"/clang/usr/lib
+ mv -f "$pkgdir"/usr/lib/cmake/clang "$srcdir"/clang/usr/lib/cmake/
+ mv -f "$pkgdir"/usr/include/{clang,clang-tidy,clang-c} "$srcdir"/clang/usr/include/
+ # llvm project uses /usr/libexec and setting CMAKE_INSTALL_LIBEXECDIR doesn't affect that.
# to comply with archlinux packaging standards we have to move some files manually
- for libexec_file in "analyze-c++" "analyze-cc" "c++-analyzer" "ccc-analyzer" "intercept-c++" "intercept-cc"
- do
- mv "$pkgdir"/usr/libexec/$libexec_file "$pkgdir"/usr/lib/clang/$libexec_file
- done
+ mv -f "$pkgdir"/usr/libexec/* "$srcdir"/clang/usr/lib/clang
rmdir "$pkgdir"/usr/libexec
- sed -i 's|libexec|lib/clang|' "$pkgdir"/usr/bin/scan-build
+ mv -f "$pkgdir"/usr/bin/{analyze-build,c-index-test,clang*,diagtool,find-all-symbols,git-clang-format,hmaptool,intercept-build,modularize,pp-trace,run-clang-tidy,scan-build,scan-build-py,scan-view} "$srcdir"/clang/usr/bin/
+ mv -f "$pkgdir"/usr/share/{clang,man,opt-viewer,scan-build,scan-view} "$srcdir"/clang/usr/share/
+
+# sed -i 's|libexec|lib/clang|' "$pkgdir"/usr/bin/scan-build
if [[ $CARCH == x86_64 ]]; then
@@ -163,10 +155,7 @@ package_llvm-minimal-git() {
fi
install -Dm644 "$srcdir"/llvm-project/llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.TXT
- install -Dm644 "$srcdir"/llvm-project/compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/compiler-rt-LICENSE.TXT
- install -Dm644 "$srcdir"/llvm-project/clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE.TXT
- install -Dm644 "$srcdir"/llvm-project/clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-LICENSE.TXT
-
+
}
package_llvm-libs-minimal-git() {
@@ -180,6 +169,42 @@ package_llvm-libs-minimal-git() {
install -Dm644 "$srcdir"/llvm-project/llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.TXT
}
+_python_optimize() {
+ python -m compileall "$@"
+ python -O -m compileall "$@"
+ python -OO -m compileall "$@"
+}
+
+package_clang-minimal-git(){
+ pkgdesc='C language family frontend for LLVM (git version)'
+ depends=(llvm-libs-minimal-git clang-libs-minimal-git gcc)
+ optdepends=('openmp: OpenMP support in clang with -fopenmp'
+ 'python: for scan-view, scan-build, git-clang-format, clang-rename and python bindings'
+ 'llvm-minimal-git: referenced by some clang headers')
+ conflicts=(compiler-rt clang)
+ provides=(compiler-rt clang clang-analyzer clang-tools-extra)
+
+ cp --preserve --recursive "$srcdir"/clang/* "$pkgdir"/
+
+ # Move scanbuild-py into site-packages
+ local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
+ install -d "$pkgdir/$site_packages"
+ mv "$pkgdir"/usr/lib/{libear,libscanbuild} "$pkgdir/$site_packages/"
+
+ sed -i 's|libexec|lib/clang|' \
+ "$pkgdir/usr/bin/scan-build" \
+ "$pkgdir/$site_packages/libscanbuild/analyze.py"
+
+ # Compile Python scripts
+ _python_optimize "$pkgdir"/usr/share "$pkgdir"/$site_packages
+
+
+ install -Dm644 "$srcdir"/llvm-project/compiler-rt/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/compiler-rt-LICENSE.TXT
+ install -Dm644 "$srcdir"/llvm-project/clang-tools-extra/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-tools-extra-LICENSE.TXT
+ install -Dm644 "$srcdir"/llvm-project/clang/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/clang-LICENSE.TXT
+
+}
+
package_clang-libs-minimal-git() {
pkgdesc="clang runtime libraries, trunk version"
depends=(llvm-libs-minimal-git="$pkgver-$pkgrel")
@@ -192,15 +217,6 @@ package_clang-libs-minimal-git() {
install -Dm644 "$srcdir"/llvm-project/llvm/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.TXT
}
-package_spirv-llvm-translator-minimal-git() {
-pkgdesc="Tool and a library for bi-directional translation between SPIR-V and LLVM IR, trunk version"
-depends=(llvm-minimal-git=$pkgver-$pkgrel 'spirv-tools-git')
-provides=('spirv-llvm-translator')
-conflicts=('spirv-llvm-translator')
-
- cp --preserve --recursive "$srcdir"/spirv-llvm-translator/* "$pkgdir"/
- install -Dm644 "$srcdir"/SPIRV-LLVM-Translator/LICENSE.TXT "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.TXT
-}
# vim:set ts=2 sw=2 et: