summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 53281264a3f680c6c031d58837c56eb651948fa6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Maintainer: Torsten Keßler <tpkessler at archlinux dot org>
pkgname=terra
pkgver=1.2.0
pkgrel=1
pkgdesc="Low-level system programming language"
arch=('x86_64')
url="https://terralang.org/"
license=('MIT')
makedepends=('ninja' 'cmake' 'python')
_git='https://github.com/terralang/terra'
_llvm='https://github.com/llvm/llvm-project'
_llvm_ver=18.1.8
source=("$pkgname-$pkgver.tar.gz::$_git/archive/refs/tags/release-$pkgver.tar.gz"
				"$pkgname-llvm-$_llvm_ver.tar.xz::$_llvm/releases/download/llvmorg-$_llvm_ver/llvm-project-$_llvm_ver.src.tar.xz")
b2sums=('a2921f7ab0bf85181cdb2a8a2c8eaa50bcf93853eeb0c485e9cfeb5fd456afa99950c4a338b67f4b56531c62f8ebafd75f6cc859b887b4a02bf55aa3943c6f29'
        'a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f')
# Arch's default build flags cause terra to crash. Remove them until we find a fix.
options=(!lto !buildflags)

build() {
	local llvm_args=(
		-Wno-dev
		-G Ninja
		-B llvm-build
		-S "llvm-project-$_llvm_ver.src/llvm"
		-D CMAKE_INSTALL_PREFIX=/usr
		-D CMAKE_BUILD_TYPE=Release
		-D LLVM_ENABLE_PROJECTS=clang
		-D LLVM_ENABLE_TERMINFO=OFF
		-D LLVM_ENABLE_LIBEDIT=OFF
		-D LLVM_ENABLE_ZLIB=OFF
		-D LLVM_ENABLE_ZSTD=OFF
		-D LLVM_ENABLE_LIBXML2=OFF
		-D LLVM_ENABLE_ASSERTIONS=OFF
	)
	# Minimal debug info
	CFLAGS+=" -g1"
	CXXFLAGS+=" -g1"
	cmake "${llvm_args[@]}"
	ninja -C llvm-build
	DESTDIR="$srcdir/deps" ninja -C llvm-build install
	
	local cmake_args=(
		-Wno-dev
		-G Ninja
		-B build
		-S "$pkgname-release-$pkgver"
		-D CMAKE_PREFIX_PATH="$srcdir/deps/usr/lib/cmake"
		-D CMAKE_INSTALL_PREFIX=/usr
		-D TERRA_STATIC_LINK_LLVM=ON
		-D TERRA_SLIB_INCLUDE_LLVM=ON
		-D TERRA_STATIC_LINK_LUAJIT=ON
		-D TERRA_SLIB_INCLUDE_LUAJIT=ON
	)
	cmake "${cmake_args[@]}"
	ninja -C build
}

package() {
	DESTDIR="$pkgdir" ninja -C build install
	install -Dm644 "$pkgname-release-$pkgver"/release/share/terra/README.md "$pkgdir"/usr/share/licenses/$pkgname/README
}