summaryrefslogtreecommitdiffstats
path: root/ninja
diff options
context:
space:
mode:
authorNao Pross <naopross@thearcway.org>2019-01-22 03:49:31 +0100
committerNao Pross <naopross@thearcway.org>2019-01-22 03:59:11 +0100
commit1868b6ded77e95155c5101eca1b21aafa45cbd44 (patch)
tree410df3c8d9efce82d48394a31a14d205b5851e41 /ninja
parentRe-implement flattask.h in task.hpp (diff)
downloadflatland-1868b6ded77e95155c5101eca1b21aafa45cbd44.tar.gz
flatland-1868b6ded77e95155c5101eca1b21aafa45cbd44.zip
Add configuration for Ninja build system
Run configure.py to generate a build.ninja file to build with ninja. $ ./configure.py $ ninja Ninja can also build individual targets, for example $ ninja bin/libflatland.so $ ninja bin/test/test1
Diffstat (limited to 'ninja')
-rw-r--r--ninja/rules.ninja23
1 files changed, 23 insertions, 0 deletions
diff --git a/ninja/rules.ninja b/ninja/rules.ninja
new file mode 100644
index 0000000..2a56923
--- /dev/null
+++ b/ninja/rules.ninja
@@ -0,0 +1,23 @@
+includes = -I engine/include
+cflags = -Wall -pedantic -fPIC -std=c++17 $includes
+
+libs =
+lflags = -lSDL2 $libs
+
+flags = -fdiagnostics-color
+
+rule mkdir
+ command = mkdir -p $out
+ description = creating directory $out
+
+rule cpp
+ command = g++ $flags $cflags -c $in -o $out $lflags
+ description = compiling $in
+
+rule link
+ command = g++ $flags $cflags -o $out $in $lflags
+ description = linking $out
+
+rule link-shared
+ command = g++ $flags $cflags -shared -o $out $in $lflags
+ description = linking $out