From 330336c28507e0ee3a77d20e03dbc994618c213c Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 19 Jun 2021 12:44:02 +0200 Subject: Support multiple build config files. --- subdir/cppbuild2.cc | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 subdir/cppbuild2.cc (limited to 'subdir/cppbuild2.cc') diff --git a/subdir/cppbuild2.cc b/subdir/cppbuild2.cc new file mode 100644 index 0000000..374319d --- /dev/null +++ b/subdir/cppbuild2.cc @@ -0,0 +1,125 @@ +#if 0/* +if [ "cppbuild" -ot "$0" ] +then + echo "Rebuilding cppbuild" + g++ -s -O3 -std=c++17 -pthread $0 libcppbuild.a -o cppbuild + [ $? != 0 ] && exit 1 +fi + +echo "Launching cppbuild" +./cppbuild $* +exit $? +*/ +#endif + +#include +#include +#include + +#include "../libcppbuild.h" + +/* +Nested build configurations for for example unit-tests in a test folder +#include "test/cppbuild.cc" +*/ + +/* +Glob convenience methods +std::string glob = getFilesInDir(...); +*/ + +/* +Compilation database +https://clang.llvm.org/docs/JSONCompilationDatabase.html +*/ + +/* +En feature mere kunne være: pre-post build hooks +De vil kunne udtrykkes som intra-build dependencies +Og så selvfølgelig med conditions +*/ + +/* +Target som er "shell script" eller sådan noget +så kan man kalde f.eks. imageconvert +*/ + +/* +Compiler selection per-target (for arm cross-compilation) +*/ +namespace +{ +std::vector myConfigs() +{ + return + { + { + .target = "src.a", + .sources = { + "drumgizmo/src/audiocache.cc", + "drumgizmo/src/audiocacheeventhandler.cc", + "drumgizmo/src/audiocachefile.cc", + "drumgizmo/src/audiocacheidmanager.cc", + "drumgizmo/src/audiofile.cc", + "drumgizmo/src/audioinputengine.cc", + "drumgizmo/src/audioinputenginemidi.cc", + "drumgizmo/src/audiooutputengine.cc", + "drumgizmo/src/bytesizeparser.cc", + "drumgizmo/src/channel.cc", + "drumgizmo/src/channelmixer.cc", + "drumgizmo/src/configfile.cc", + "drumgizmo/src/configparser.cc", + "drumgizmo/src/dgxmlparser.cc", + "drumgizmo/src/directory.cc", + "drumgizmo/src/domloader.cc", + "drumgizmo/src/drumgizmo.cc", + "drumgizmo/src/drumgizmoconf.cc", + "drumgizmo/src/drumkit.cc", + "drumgizmo/src/drumkitloader.cc", + "drumgizmo/src/events.cc", + "drumgizmo/src/events_ds.cc", + "drumgizmo/src/inputprocessor.cc", + "drumgizmo/src/instrument.cc", + "drumgizmo/src/latencyfilter.cc", + "drumgizmo/src/midimapparser.cc", + "drumgizmo/src/midimapper.cc", + "drumgizmo/src/path.cc", + "drumgizmo/src/powerlist.cc", + "drumgizmo/src/powermap.cc", + "drumgizmo/src/powermapfilter.cc", + "drumgizmo/src/random.cc", + "drumgizmo/src/sample.cc", + "drumgizmo/src/sample_selection.cc", + "drumgizmo/src/sem.cc", + "drumgizmo/src/staminafilter.cc", + "drumgizmo/src/thread.cc", + "drumgizmo/src/translation.cc", + "drumgizmo/src/velocityfilter.cc", + "drumgizmo/src/versionstr.cc", + "drumgizmo/src/zrwrapper.cc", + }, + .depends = {}, + .cxxflags = { + "-fPIC", + "-DUI_X11", + "-O3", + "-g", + "-Wall", + "-Werror", + "-std=c++11", + "-Idrumgizmo/getoptpp", + "-Idrumgizmo/", + "-Idrumgizmo/hugin", + "-Idrumgizmo/plugingui/", + "-Idrumgizmo/src/", + "-Idrumgizmo/zita-resampler/libs", + "-Idrumgizmo/pugixml/src", + }, + .cflags = {}, + .ldflags = {} + } + }; +} + +int a = reg(__FILE__, myConfigs); +} -- cgit v1.2.3