summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbootstrap.sh2
-rw-r--r--cppbuild.cc153
-rw-r--r--examples/cppbuild.cc156
-rw-r--r--examples/subdir/cppbuild.cc (renamed from subdir/cppbuild.cc)0
-rw-r--r--toolchain.cc17
-rw-r--r--toolchain.h14
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);