110 lines
1.7 KiB
Bash
Executable File
110 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
mkdir -p build
|
|
|
|
declare -a shared_src=(
|
|
dlib/package.d
|
|
dlib/platform.d
|
|
dlib/fonts.d
|
|
dlib/aliases.d
|
|
dlib/math.d
|
|
dlib/util.d
|
|
dlib/alloc.d
|
|
dlib/assets.d
|
|
dlib/externdecl.d
|
|
dlib/stb_truetype.d
|
|
)
|
|
|
|
d_compiler="ldc"
|
|
# Arch ldc-git AUR package (can remove post ldc v1.42)
|
|
if [ -x "$(command -v ldc-git)" ]; then
|
|
d_compiler="ldc-git"
|
|
fi
|
|
|
|
if [ "$1" == "wasm" ]; then
|
|
out="build/dlib.wasm"
|
|
declare -a flags=(
|
|
-vgc
|
|
-betterC
|
|
-mtriple=wasm32-unknown-unknown-wasm
|
|
-d-version=DLIB_TEST
|
|
-fvisibility=hidden
|
|
--unittest
|
|
-Iwasm/runtime
|
|
-i=core
|
|
-i=std
|
|
-i=.
|
|
--real-precision=double
|
|
-Xcc=-DBUILD_WASM
|
|
-gcc=clang
|
|
"--of=$out"
|
|
)
|
|
declare -a wasm_src=(
|
|
wasm/runtime/object.d
|
|
opengl/opengl_wasm.d
|
|
opengl/opengl.d
|
|
opengl/glenum.d
|
|
)
|
|
|
|
$d_compiler "${flags[@]}" "${shared_src[@]}" "${wasm_src[@]}"
|
|
|
|
cp $out wasm/dlib.wasm
|
|
else
|
|
out="build/Test_Runner"
|
|
declare -a native_src=(
|
|
build/libcgltf.a
|
|
)
|
|
declare -a flags=(
|
|
-P-I/usr/include/freetype2
|
|
-L-lfreetype
|
|
-Idlib
|
|
--main
|
|
--unittest
|
|
-g
|
|
-d-version=DLIB_TEST
|
|
-verrors=50
|
|
"--of=$out"
|
|
)
|
|
|
|
/bin/bash ./build.sh build
|
|
|
|
# Test for success
|
|
ldc2 "${flags[@]}" "${shared_src[@]}" "${native_src[@]}"
|
|
|
|
rm "./${out}.o"
|
|
"./${out}"
|
|
rm $out
|
|
|
|
native_src+=(
|
|
vulkan/vulkan.d
|
|
vulkan/vulkan_funcs.d
|
|
opengl/opengl.d
|
|
opengl/opengl_native.d
|
|
opengl/glenum.d
|
|
build/libvma.a
|
|
dlib/dlibincludes.c
|
|
)
|
|
flags+=(
|
|
-L-lvulkan
|
|
-L-lstdc++
|
|
-L-lGL
|
|
-L-lX11
|
|
-L-lSDL3
|
|
-Jbuild
|
|
-d-version=VULKAN_RENDERER_TEST
|
|
-d-version=DLIB_ASSETS
|
|
-d-version=BUILD_GL
|
|
-Xcc=-DBUILD_VULKAN
|
|
-Xcc=-DBUILD_ASSETS
|
|
-Xcc=-DBUILD_GL
|
|
)
|
|
|
|
# Test for compilation
|
|
$d_compiler "${flags[@]}" "${shared_src[@]}" "${native_src[@]}"
|
|
|
|
rm "./${out}.o"
|
|
"./${out}"
|
|
rm $out
|
|
fi
|
|
|