diff options
author | Nao Pross <naopross@thearcway.org> | 2019-01-22 15:44:00 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2019-01-22 15:44:35 +0100 |
commit | 0af63017da578e5838f9b9dde6fdcc58f71fb235 (patch) | |
tree | 0d19309b8a38adcc141c9671e978ff274119aef7 /configure.py | |
parent | Rename library from libwrapsdl2 to libwsdl2 (diff) | |
download | libwsdl2-0af63017da578e5838f9b9dde6fdcc58f71fb235.tar.gz libwsdl2-0af63017da578e5838f9b9dde6fdcc58f71fb235.zip |
Add ninja build files and configure script, remove makefile
Diffstat (limited to '')
-rwxr-xr-x | configure.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/configure.py b/configure.py new file mode 100755 index 0000000..681861b --- /dev/null +++ b/configure.py @@ -0,0 +1,45 @@ +#! /usr/bin/env python3 +import os +import re + +def find_sources(path): + sources = tuple(filter(lambda f: f.endswith(".cpp"), os.listdir(path))) + objects = tuple(map(lambda f: re.sub(".cpp$", ".o", f), sources)) + + # add path prefix to files + sources = tuple(map(lambda f: path + "/" + f, sources)) + objects = tuple(map(lambda f: "build/" + path + "/" + f, objects)) + + return sources, objects + + +with open("build.ninja", "w") as bf: + + # find engine sources + sources, objects = find_sources(".") + + # include rules + print("include ninja/rules.ninja\n", file=bf) + + # create build directories + print("build build/: mkdir\n", file=bf) + print("build build/test: mkdir\n", file=bf) + + + # build engine files + for s, o in zip(sources, objects): + print("build {}: cpp {}".format(o, s), file=bf) + + # build engine library + print("\nbuild build/libwsdl2.so: link-shared " + " ".join(objects) + "\n", file=bf) + + + # find test sources + sources, objects = find_sources("test") + binaries = tuple(map(lambda f: re.sub(".o$", "", f), objects)) + + # build tests + for s, o, b in zip(sources, objects, binaries): + print("build {}: cpp {}".format(o, s), file=bf) + print("build {}: link {}".format(b, o), file=bf) + print(" lflags = $lflags build/libwsdl2.so\n", file=bf) |