diff options
-rwxr-xr-x | bootstrap.sh | 2 | ||||
-rw-r--r-- | cppbuild.cc | 153 | ||||
-rw-r--r-- | examples/cppbuild.cc | 156 | ||||
-rw-r--r-- | examples/subdir/cppbuild.cc (renamed from subdir/cppbuild.cc) | 0 | ||||
-rw-r--r-- | toolchain.cc | 17 | ||||
-rw-r--r-- | toolchain.h | 14 |
6 files changed, 175 insertions, 167 deletions
diff --git a/bootstrap.sh b/bootstrap.sh index 29b422b..3605a51 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,2 +1,2 @@ #!/bin/bash -g++ -std=c++17 -pthread libcppbuild.a -o cppbuild +g++ -std=c++17 -I. -pthread *.cc -o cppbuild diff --git a/cppbuild.cc b/cppbuild.cc index d3d21be..c78def1 100644 --- a/cppbuild.cc +++ b/cppbuild.cc @@ -2,155 +2,38 @@ namespace { -BuildConfigurations myConfigs() +BuildConfigurations cppbuildConfigs() { return { { - .type = TargetType::Executable, - .target = "plugingui", + .type = TargetType::StaticLibrary, + .target = "libcppbuild.a", .sources = { - "drumgizmo/zita-resampler/libs/cresampler.cc", - "drumgizmo/zita-resampler/libs/resampler-table.cc", - "drumgizmo/zita-resampler/libs/resampler.cc", - "drumgizmo/zita-resampler/libs/vresampler.cc", - "drumgizmo/hugin/hugin.c", - "drumgizmo/pugixml/src/pugixml.cpp", - }, - .depends = { - "libplugingui.so", - }, - .cxxflags = { - "-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 = { - "-g", - //"-O3", - "-Wall", - "-Werror", - }, - .ldflags = { - "-lm", - "-lX11", - "-lXext", - "-lsndfile", - "-pthread", - } - }, - }; -} - -BuildConfigurations myConfigs2() -{ - return - { - { - .type = TargetType::DynamicLibrary, - .target = "libplugingui.so", - .sources = { - "drumgizmo/plugingui/abouttab.cc", - "drumgizmo/plugingui/bleedcontrolframecontent.cc", - "drumgizmo/plugingui/button.cc", - "drumgizmo/plugingui/button_base.cc", - "drumgizmo/plugingui/checkbox.cc", - "drumgizmo/plugingui/colour.cc", - "drumgizmo/plugingui/combobox.cc", - "drumgizmo/plugingui/dialog.cc", - "drumgizmo/plugingui/diskstreamingframecontent.cc", - "drumgizmo/plugingui/drumkitframecontent.cc", - "drumgizmo/plugingui/drumkittab.cc", - "drumgizmo/plugingui/eventhandler.cc", - "drumgizmo/plugingui/filebrowser.cc", - "drumgizmo/plugingui/font.cc", - "drumgizmo/plugingui/frame.cc", - "drumgizmo/plugingui/helpbutton.cc", - "drumgizmo/plugingui/humaniservisualiser.cc", - "drumgizmo/plugingui/humanizerframecontent.cc", - "drumgizmo/plugingui/image.cc", - "drumgizmo/plugingui/imagecache.cc", - "drumgizmo/plugingui/knob.cc", - "drumgizmo/plugingui/label.cc", - "drumgizmo/plugingui/layout.cc", - "drumgizmo/plugingui/led.cc", - "drumgizmo/plugingui/lineedit.cc", - "drumgizmo/plugingui/listbox.cc", - "drumgizmo/plugingui/listboxbasic.cc", - "drumgizmo/plugingui/listboxthin.cc", - "drumgizmo/plugingui/maintab.cc", - "drumgizmo/plugingui/mainwindow.cc", - "drumgizmo/plugingui/nativewindow_x11.cc", - "drumgizmo/plugingui/painter.cc", - "drumgizmo/plugingui/pixelbuffer.cc", - "drumgizmo/plugingui/pluginconfig.cc", - "drumgizmo/plugingui/powerbutton.cc", - "drumgizmo/plugingui/powerwidget.cc", - "drumgizmo/plugingui/progressbar.cc", - "drumgizmo/plugingui/resamplingframecontent.cc", - "drumgizmo/plugingui/resource.cc", - "drumgizmo/plugingui/resource_data.cc", - "drumgizmo/plugingui/sampleselectionframecontent.cc", - "drumgizmo/plugingui/scrollbar.cc", - "drumgizmo/plugingui/slider.cc", - "drumgizmo/plugingui/stackedwidget.cc", - "drumgizmo/plugingui/statusframecontent.cc", - "drumgizmo/plugingui/tabbutton.cc", - "drumgizmo/plugingui/tabwidget.cc", - "drumgizmo/plugingui/testmain.cc", - "drumgizmo/plugingui/textedit.cc", - "drumgizmo/plugingui/texture.cc", - "drumgizmo/plugingui/texturedbox.cc", - "drumgizmo/plugingui/timingframecontent.cc", - "drumgizmo/plugingui/toggle.cc", - "drumgizmo/plugingui/tooltip.cc", - "drumgizmo/plugingui/uitranslation.cc", - "drumgizmo/plugingui/utf8.cc", - "drumgizmo/plugingui/verticalline.cc", - "drumgizmo/plugingui/visualizerframecontent.cc", - "drumgizmo/plugingui/voicelimitframecontent.cc", - "drumgizmo/plugingui/widget.cc", - "drumgizmo/plugingui/window.cc", - "drumgizmo/plugingui/lodepng/lodepng.cpp", - }, - .depends = { - "src.a", + "build.cc", + "configure.cc", + "execute.cc", + "libcppbuild.cc", + "rebuild.cc", + "task.cc", + "task_ar.cc", + "task_cc.cc", + "task_ld.cc", + "task_so.cc", + "tasks.cc", }, .cxxflags = { - "-DUI_X11", + "-std=c++17", "-O3", - "-g", + "-s", "-Wall", "-Werror", - "-std=c++11", - "-Idrumgizmo/getoptpp", - "-Idrumgizmo/", - "-Idrumgizmo/hugin", - "-Idrumgizmo/plugingui/", - "-Idrumgizmo/src/", - "-Idrumgizmo/zita-resampler/libs", - "-Idrumgizmo/pugixml/src", + "-I.", }, - .cflags = {}, - .ldflags = {} } }; } - -//int a = reg(__FILE__, myConfigs); -//int b = reg(__FILE__, myConfigs2); } // Convenience macro -REG(myConfigs); -REG(myConfigs2); +REG(cppbuildConfigs); diff --git a/examples/cppbuild.cc b/examples/cppbuild.cc new file mode 100644 index 0000000..d3d21be --- /dev/null +++ b/examples/cppbuild.cc @@ -0,0 +1,156 @@ +#include "libcppbuild.h" + +namespace +{ +BuildConfigurations myConfigs() +{ + return + { + { + .type = TargetType::Executable, + .target = "plugingui", + .sources = { + "drumgizmo/zita-resampler/libs/cresampler.cc", + "drumgizmo/zita-resampler/libs/resampler-table.cc", + "drumgizmo/zita-resampler/libs/resampler.cc", + "drumgizmo/zita-resampler/libs/vresampler.cc", + "drumgizmo/hugin/hugin.c", + "drumgizmo/pugixml/src/pugixml.cpp", + }, + .depends = { + "libplugingui.so", + }, + .cxxflags = { + "-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 = { + "-g", + //"-O3", + "-Wall", + "-Werror", + }, + .ldflags = { + "-lm", + "-lX11", + "-lXext", + "-lsndfile", + "-pthread", + } + }, + }; +} + +BuildConfigurations myConfigs2() +{ + return + { + { + .type = TargetType::DynamicLibrary, + .target = "libplugingui.so", + .sources = { + "drumgizmo/plugingui/abouttab.cc", + "drumgizmo/plugingui/bleedcontrolframecontent.cc", + "drumgizmo/plugingui/button.cc", + "drumgizmo/plugingui/button_base.cc", + "drumgizmo/plugingui/checkbox.cc", + "drumgizmo/plugingui/colour.cc", + "drumgizmo/plugingui/combobox.cc", + "drumgizmo/plugingui/dialog.cc", + "drumgizmo/plugingui/diskstreamingframecontent.cc", + "drumgizmo/plugingui/drumkitframecontent.cc", + "drumgizmo/plugingui/drumkittab.cc", + "drumgizmo/plugingui/eventhandler.cc", + "drumgizmo/plugingui/filebrowser.cc", + "drumgizmo/plugingui/font.cc", + "drumgizmo/plugingui/frame.cc", + "drumgizmo/plugingui/helpbutton.cc", + "drumgizmo/plugingui/humaniservisualiser.cc", + "drumgizmo/plugingui/humanizerframecontent.cc", + "drumgizmo/plugingui/image.cc", + "drumgizmo/plugingui/imagecache.cc", + "drumgizmo/plugingui/knob.cc", + "drumgizmo/plugingui/label.cc", + "drumgizmo/plugingui/layout.cc", + "drumgizmo/plugingui/led.cc", + "drumgizmo/plugingui/lineedit.cc", + "drumgizmo/plugingui/listbox.cc", + "drumgizmo/plugingui/listboxbasic.cc", + "drumgizmo/plugingui/listboxthin.cc", + "drumgizmo/plugingui/maintab.cc", + "drumgizmo/plugingui/mainwindow.cc", + "drumgizmo/plugingui/nativewindow_x11.cc", + "drumgizmo/plugingui/painter.cc", + "drumgizmo/plugingui/pixelbuffer.cc", + "drumgizmo/plugingui/pluginconfig.cc", + "drumgizmo/plugingui/powerbutton.cc", + "drumgizmo/plugingui/powerwidget.cc", + "drumgizmo/plugingui/progressbar.cc", + "drumgizmo/plugingui/resamplingframecontent.cc", + "drumgizmo/plugingui/resource.cc", + "drumgizmo/plugingui/resource_data.cc", + "drumgizmo/plugingui/sampleselectionframecontent.cc", + "drumgizmo/plugingui/scrollbar.cc", + "drumgizmo/plugingui/slider.cc", + "drumgizmo/plugingui/stackedwidget.cc", + "drumgizmo/plugingui/statusframecontent.cc", + "drumgizmo/plugingui/tabbutton.cc", + "drumgizmo/plugingui/tabwidget.cc", + "drumgizmo/plugingui/testmain.cc", + "drumgizmo/plugingui/textedit.cc", + "drumgizmo/plugingui/texture.cc", + "drumgizmo/plugingui/texturedbox.cc", + "drumgizmo/plugingui/timingframecontent.cc", + "drumgizmo/plugingui/toggle.cc", + "drumgizmo/plugingui/tooltip.cc", + "drumgizmo/plugingui/uitranslation.cc", + "drumgizmo/plugingui/utf8.cc", + "drumgizmo/plugingui/verticalline.cc", + "drumgizmo/plugingui/visualizerframecontent.cc", + "drumgizmo/plugingui/voicelimitframecontent.cc", + "drumgizmo/plugingui/widget.cc", + "drumgizmo/plugingui/window.cc", + "drumgizmo/plugingui/lodepng/lodepng.cpp", + }, + .depends = { + "src.a", + }, + .cxxflags = { + "-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); +//int b = reg(__FILE__, myConfigs2); +} + +// Convenience macro +REG(myConfigs); +REG(myConfigs2); diff --git a/subdir/cppbuild.cc b/examples/subdir/cppbuild.cc index 03b70e6..03b70e6 100644 --- a/subdir/cppbuild.cc +++ b/examples/subdir/cppbuild.cc diff --git a/toolchain.cc b/toolchain.cc deleted file mode 100644 index 0a8ea98..0000000 --- a/toolchain.cc +++ /dev/null @@ -1,17 +0,0 @@ -#include "toolchain.h" - -#include "libcppbuild.h" - -std::string getTool(Tool tool) -{ - auto prefix = getConfiguration("prefix"); - - switch(tool) - { - case Tool::CCompiler: - case Tool::CppCompiler: - case Tool::Archiver: - case Tool::Linker: - break; - } -} diff --git a/toolchain.h b/toolchain.h deleted file mode 100644 index d3de9a1..0000000 --- a/toolchain.h +++ /dev/null @@ -1,14 +0,0 @@ -// -*- c++ -*- -#pragma once - -#include <string> - -enum class Tool -{ - CCompiler, - CppCompiler, - Archiver, - Linker, -} - -std::string getTool(Tool tool); |