blob: beeea426e302864752ab4cf5d5e6d0c62bf78680 (
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
# Contributor: Eggz
# Contributor: PedroHLC <root@pedrohlc.com>
_pkgname='raytracinginvulkan'
_imgui_ver=1.91.6
_vcpkg_sha=16601c6e7ee15aeccac771185916cd6f6fe1ba50
pkgname="${_pkgname}-git"
pkgver=7.r32.g92170b6
pkgrel=1
pkgdesc="Implementation of Peter Shirley's Ray Tracing In One Weekend book"
arch=('x86_64')
url='https://github.com/GPSnoopy/RayTracingInVulkan'
license=('BSD-3-Clause')
provides=("$_pkgname")
conflicts=("$_pkgname")
depends=('boost-libs' 'glfw' 'glm' 'tinyobjloader' 'vulkan-icd-loader' 'glslang' 'freetype2' 'mangohud')
optdepends=(
'nvidia-utils: Includes vulkan driver for NVIDIA'
'vulkan-radeon: 1st best vulkan driver for AMD'
'vulkan-amdgpu-pro: 2nd best vulkan driver for AMD'
'amdvlk: 3rd best vulkan driver for AMD'
'vulkan-intel: Includes vulkan driver for Intel'
)
makedepends=('cmake' 'boost' 'vulkan-headers' 'stb' 'git')
source=("${_pkgname}::git+${url}.git"
"imgui-${_imgui_ver}.tar.gz::https://github.com/ocornut/imgui/archive/refs/tags/v${_imgui_ver}.tar.gz"
"CMakeLists.${_imgui_ver}.txt::https://raw.githubusercontent.com/microsoft/vcpkg/${_vcpkg_sha}/ports/imgui/CMakeLists.txt"
"imgui-config.${_imgui_ver}.cmake.in::https://raw.githubusercontent.com/microsoft/vcpkg/${_vcpkg_sha}/ports/imgui/imgui-config.cmake.in"
"imgui-cmake.patch"
"RayTracer"
)
sha256sums=('SKIP'
'c5fbc5dcab1d46064001c3b84d7a88812985cde7e0e9ced03f5677bec1ba502a'
'469172229e8a2e6ddb00105c4a764fa452ab143d21edd0b30cea589bf0b75191'
'2a441c1709b0ec7c0de1f403944ba5b8d8c059c02adcea9f8550bf33303eb7bb'
'e7706c6bd8143b9faddc3eabb16e016d4f84e605c402d459fdc5036170a4b365'
'2dbf05310df36933b0263cbe5ccfe8b9ef042326797e63eb4449eabc22e5c2f5')
pkgver() {
cd "${_pkgname}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^r//g'
}
prepare() {
cd "${_pkgname}"
# fix STB location with cmake
sed -i 's/find_package(Stb REQUIRED)/set(Stb_INCLUDE_DIR ${STB_INCLUDE_DIRS})/g' CMakeLists.txt
cd ..
# prepare imgui static compilation
cp CMakeLists.${_imgui_ver}.txt imgui-$_imgui_ver/CMakeLists.txt
cp imgui-config.${_imgui_ver}.cmake.in imgui-$_imgui_ver/imgui-config.cmake.in
cd imgui-$_imgui_ver
patch -p1 < ../imgui-cmake.patch
}
build() {
# first build imgui
cmake -B build-imgui -S imgui-$_imgui_ver \
-DCMAKE_INSTALL_PREFIX="$srcdir/temp" \
-DIMGUI_FREETYPE=ON \
-DIMGUI_BUILD_VULKAN_BINDING=ON \
-DIMGUI_BUILD_GLFW_BINDING=ON \
-Wno-dev
cmake --build build-imgui
cmake --install build-imgui
# build raytracing
cmake -B build -S $_pkgname \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_PREFIX_PATH="$srcdir/temp" \
-DSTB_INCLUDE_DIRS=/usr/include/stb \
-DCMAKE_BUILD_TYPE=Release \
-DBoost_USE_STATIC_LIBS=OFF \
-DBoost_USE_MULTITHREADED=ON \
-DBoost_NO_BOOST_CMAKE=ON \
-DBoost_USE_STATIC_RUNTIME=OFF \
-DBacktrace_LIBRARIES="-ldl"
cmake --build build
}
package() {
cd build
install -dm755 "$pkgdir/opt/${_pkgname}/bin"
install -dm755 "$pkgdir/opt/${_pkgname}/assets"
install -m755 bin/RayTracer "$pkgdir/opt/${_pkgname}/bin/RayTracer"
cp -dr --no-preserve=ownership \
-t "$pkgdir/opt/${_pkgname}/assets/" \
assets/{fonts,models,textures,shaders}
cd ../${_pkgname}
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
cd ..
install -Dm755 RayTracer -t "$pkgdir/usr/bin/"
}
|