#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 { BuildConfigurations 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", "-I../drumgizmo/getoptpp", "-I../drumgizmo/", "-I../drumgizmo/hugin", "-I../drumgizmo/plugingui/", "-I ../drumgizmo/src/", "-I ../drumgizmo/zita-resampler/libs", "-I ../drumgizmo/pugixml/src", }, .cflags = {}, .ldflags = {} } }; } int a = reg(__FILE__, myConfigs); }