summaryrefslogtreecommitdiff
path: root/build.sh
blob: 4465cec0868b039eb50a5500f429960deca58adc (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
#!/bin/bash
set -e

date
echo "author: Abdellah El Morabit"
echo

BUILD_DIR=build
SOURCE_DIR=source
INCLUDES="-I${SOURCE_DIR}/loo -I${SOURCE_DIR} -I${SOURCE_DIR}/base"
CFLAGS="-fno-rtti -fno-exceptions -Wall -Wundef -Werror -fanalyzer -no-pie -Wno-unused-function -Wno-unused-variable -O0 "
LIBS=""

DEBUG=1

VULKAN=0
WAYLAND=1
X11=0

if [ $WAYLAND -eq 1 ]; then
     CFLAGS+=" -DWAYLAND=1 -DX11=0"
     LIBS+="-lwayland-client -lxkbcommon"

# TODO: how often do we need the xdg protocol?
     GENERATED_DIR="${BUILD_DIR}/generated"
     XDG_SHELL_XML=/usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml
     mkdir -p "$GENERATED_DIR"
     wayland-scanner client-header "$XDG_SHELL_XML" "${GENERATED_DIR}/xdg-shell-client-protocol.h"
     wayland-scanner private-code  "$XDG_SHELL_XML" "${GENERATED_DIR}/xdg-shell-protocol.c"
     INCLUDES+=" -I${GENERATED_DIR}"

elif [ $X11 -eq 1 ]; then
    LIBS+=" -lX11"
    CFLAGS+=" -DX11=1 -DWAYLAND=0"
fi

if [ $VULKAN -eq 1 ]; then
    LIBS+=" -lvulkan"
    CFLAGS+=" -DVULKAN=1"
fi

if [ $DEBUG -eq 1 ]; then
	CFLAGS+=" -g -DDEBUG=1"
fi

mkdir -p "$BUILD_DIR"

echo "Building ${BUILD_DIR}/loo..."
g++ $INCLUDES $CFLAGS "${SOURCE_DIR}/loo/loo.cpp" -o "${BUILD_DIR}/loo" $LIBS