blob: 31d07403bab973babf2d4c074be7c968ad6c59c1 (
plain) (
blame)
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
|
#!/bin/bash
set -e
date +"%T"
BUILD_DIR=build
SOURCE_DIR=src
INCLUDES="-I${SOURCE_DIR}/code -I${SOURCE_DIR} -I${SOURCE_DIR}/base -I${BUILD_DIR}"
CFLAGS="-g -fno-rtti -fno-exceptions -Wall -Werror -fanalyzer -no-pie -Wno-unused-function -Wno-unused-variable -DPLATFORM_LINUX=1 -Wno-analyzer-null-dereference"
PKG_LIBS="vulkan wayland-client xkbcommon"
PKG_CFLAGS=$(pkg-config --cflags $PKG_LIBS)
PKG_LDFLAGS=$(pkg-config --libs $PKG_LIBS)
mkdir -p "$BUILD_DIR"
# Generate xdg-shell protocol glue (only regenerate if missing)
WL_PROTO_DIR=$(pkg-config --variable=pkgdatadir wayland-protocols)
XDG_SHELL_XML="${WL_PROTO_DIR}/stable/xdg-shell/xdg-shell.xml"
if [ ! -f "${BUILD_DIR}/xdg-shell-client-protocol.h" ]; then
echo "Generating xdg-shell client header..."
wayland-scanner client-header "$XDG_SHELL_XML" "${BUILD_DIR}/xdg-shell-client-protocol.h"
fi
if [ ! -f "${BUILD_DIR}/xdg-shell-protocol.c" ]; then
echo "Generating xdg-shell protocol code..."
wayland-scanner private-code "$XDG_SHELL_XML" "${BUILD_DIR}/xdg-shell-protocol.c"
fi
if [ ! -f "${BUILD_DIR}/xdg-shell-protocol.o" ]; then
echo "Compiling xdg-shell protocol glue..."
gcc $(pkg-config --cflags wayland-client) -I"${BUILD_DIR}" -c "${BUILD_DIR}/xdg-shell-protocol.c" -o "${BUILD_DIR}/xdg-shell-protocol.o"
fi
echo "Building ${BUILD_DIR}/program..."
g++ $INCLUDES $CFLAGS $PKG_CFLAGS \
"${SOURCE_DIR}/code/program.cpp" \
"${BUILD_DIR}/xdg-shell-protocol.o" \
$PKG_LDFLAGS \
-lX11 \
-o "${BUILD_DIR}/program"
|