Update tools for new source-tree layout
authorRobin Gareus <robin@gareus.org>
Mon, 17 Jul 2017 19:02:38 +0000 (21:02 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 17 Jul 2017 19:06:04 +0000 (21:06 +0200)
doc/source_tree_layout.txt [new file with mode: 0644]
tools/doxy2json/ardourdoc.sh
tools/linux_packaging/build
tools/x-win/package.sh

diff --git a/doc/source_tree_layout.txt b/doc/source_tree_layout.txt
new file mode 100644 (file)
index 0000000..9dd982c
--- /dev/null
@@ -0,0 +1,174 @@
+Ardour Source-Tree layout (July 2017)
+
+===== LIBRARIES =====
+ A collection of libraries and utility functions. While most are shared
+ libraries, they're pretty much exclusive to Ardour.
+
+libs/
+
+ **** Independent libs ****
+
+ - fluidsynth
+   Stripped down (library only) and slightly customized version of fluidsynth
+   use  tools/update_fluidsynth.sh to update from upstream
+
+ - appleutility
+   Utility Classes, abstraction for CoreAudio and AudioUnits (OSX, macOS)
+
+ - ardouralsautil
+   Utility Class for device-listing (used by the jack and  ALSA backends).
+   Device-reservation comandline tool (linked against libdbus), which is
+   also available from https://github.com/x42/alsa_request_device
+
+ - hidapi
+   Unmodified https://github.com/signal11/hidapi for interaction with some
+   control surfaces (Push2, NI Maschine)
+
+ - libltc
+   Unmodified https://github.com/x42/libltc/ for Linear Timecode en/decoding
+
+ - ptformat
+   Unmodified https://github.com/zamaudio/ptformat for loading ProTools sessions
+
+ - vfork
+   A exec-wrapper which redirects file-descriptors to be used with vfork(2)
+
+ - qm-dsp
+   Stripped down version of https://github.com/c4dm/qm-dsp
+   The Queen Mary DSP library is used by VAMP Plugins
+
+ - vamp-plugins
+   VAMP plugins for audio analysis and offline processing (uses qm-dsp)
+
+ - timecode
+   Timecode (FPS) and musical time conversions
+
+ - lua
+   Lua Script interpreter and C++ class abstraction
+   - libs/lua/lua-5.3.3 is unmodified upstream Lua-5.3.3
+   - libs/lua/LuaBridge is a highly customized version of
+     https://github.com/vinniefalco/LuaBridge (C++ bindings)
+
+ - plugins
+   LV2 Plugins included with Ardour. These are currently mostly
+   independent (a-fluidsynth uses libfluidsynth)
+
+ - clearlooks-newer
+   GTK theme engine (used by gtk2_ardour)
+
+
+ **** PBD dependent libs ****
+
+ - pbd
+   Paul B-D's utility classes. This is the basis for all Ardour specifics.
+   It provides basic concepts and OS abstractions.
+
+ - evoral
+   (uses libpbd)
+   Control events, control lists, automation evaluation,
+   parameter descriptions, incl MIDI event abstraction
+
+ - midi++2
+   (uses libpdb, libevoral)
+   Standard MIDI Files I/O
+
+ - backends
+   (uses libpdb, ardouralsautil | appleutility, implements libardour interface)
+   Interaction with Operating System's Audio/MIDI API:
+   ALSA, CoreAudio, JACK, PortAudio/ASIO
+
+ - surfaces
+   (uses libpbd, libevoral, libtimecode, libardour ;; libgtkmm2ext, libcanvas)
+   Control Surfaces, dynamically loaded by libardour on runtime.
+
+ - panners
+   (uses libpdb, implements libardour interface)
+   Pan plugins (stereo-balance, VBAP, etc) are dynamically loaded at runtime.
+
+ - audiographer
+   (uses libpdb)
+   Mini Ardour inside Ardour to export audio-files from sessions.
+
+ - fst
+   (uses libpbd, implements external methods for libardour and gtk2ardour)
+   VST scanner tool and abstraction for Windows-VSTs to be used with
+   wine or actual windows.
+
+ - ardour
+   (uses pretty much all the libs above)
+   This is it. libardour runs Ardour sessions.
+
+ **** UI related libs ****
+
+ - gtkmm2ext
+   (uses libpbd)
+   Utility Library to extend GDK, GTK, and basic abstraction for UIs
+   and event-loops. This library is not limited to the GUI, but also
+   used for other graphical interfaces (e.g. Push2, NI Maschine)
+
+ - canvas
+   (uses libpbd, libgtkmm2ext)
+   Cairo Canvas, provides a slate for scalable drawing and basic layout/packing
+
+ - widgets
+   (uses libpbd, libgtkmm2ext ;; libcanvas utils/colors)
+   Custom GUI widgets
+
+ - waveview
+   (uses libpbd, libgtkmm2ext, canvas,  libardour)
+  Threaded waveform rendering
+
+
+===== RESOURCE FILES =====
+These are bundled as-is.
+
+export/
+ Export Presets
+
+mcp/
+ Mackie control surface device files
+
+midi_maps/
+ Generic MIDI control surface presets
+
+osc/
+ Configuration presets for the OSC control surface
+
+patchfiles/
+ MIDNAM files, MIDI synth descriptions (note-names, CC, PGM names)
+
+scripts/
+ Lua scripts (files with a leading underscore are not bundled)
+
+templates/
+ Session templates (currently none)
+
+
+===== MISC =====
+doc/
+ Misc developer oriented documentation files and Doxygen
+
+patches/
+ Some .diff files for the build-stack.
+
+tools/
+ Various developer tools, most notably packaging scripts
+
+
+===== Front Ends =====
+
+gtk2_ardour/
+ The main Ardour GUI
+
+headless/
+ hardour -- headless Ardour, mostly demo-code how to use
+ Ardour without a GUI.
+
+session_utils/
+ command-line tools using libardour (e.g. export)
+
+tools/luadevel/
+ arlua -- commandline interface to libardour
+
+vst
+ wine application top-level (WindowsVST on Linux)
index 6b2faadb5b5ca6897381df5a14318afdd0499cff..ebe8767d86ae2354a3188e04215390608c1a8389 100755 (executable)
@@ -21,8 +21,8 @@ time ./tools/doxy2json/doxy2json -j 4 \
        -D HAVE_X11=1  -D LXVST_64BIT=1 -D LXVST_SUPPORT=1 -D HAVE_TAGLIB=1 -D HAVE_POSIX_MEMALIGN=1 -D HAVE_VAMPSDK=1 -D HAVE_VAMPHOSTSDK=1 -D HAVE_RUBBERBAND=1 -D ENABLE_NLS=1 \
        -D HAVE_CURL=1 -D HAVE_LO=1 -D HAVE_LRDF=1 -D _VAMP_NO_PLUGIN_NAMESPACE=1 \
        -I libs/ardour -I libs/pbd -I libs/lua -I gtk2_ardour -I libs/timecode -I libs/audiographer -I libs/ptformat -I libs/fst \
-       -I libs/ltc -I libs/evoral -I libs/canvas -I libs/gtkmm2ext -I libs/midi++2 -I libs/surfaces/control_protocol -I libs \
-       -I build/libs/pbd -I build/libs/ardour -I build/gtk2_ardour \
+       -I libs/ltc -I libs/evoral -I libs/canvas -I libs/gtkmm2ext -I libs/midi++2 -I libs/surfaces/control_protocol \
+       -I libs/waveview -I libs/widgets -I libs -I build/libs/pbd -I build/libs/ardour -I build/gtk2_ardour \
        `pkg-config --cflags glib-2.0 glibmm-2.4 cairomm-1.0 gtkmm-2.4 libxml-2.0 lilv-0 suil-0 | sed 's/-std=c++11 //;s/-pthread //'` \
        -X "_" -X "::" -X "sigc" -X "Atk::" -X "Gdk::" -X "Gtk::" -X "Gio::" \
        -X "Glib::" -X "Pango::" -X "luabridge::" \
index da3ba72e5e66da43ecd42c79ea86ba1783022471..7491ebdf0b227cf87123b26aea2985e72b4047f5 100755 (executable)
@@ -492,7 +492,7 @@ EOF
 fi
 
 OURLIBDIR=$BUILD_ROOT/libs
-OURLIBS=$OURLIBDIR/vamp-sdk:$OURLIBDIR/surfaces/control_protocol:$OURLIBDIR/ardour:$OURLIBDIR/midi++2:$OURLIBDIR/pbd:$OURLIBDIR/rubberband:$OURLIBDIR/soundtouch:$OURLIBDIR/gtkmm2ext:$OURLIBDIR/sigc++2:$OURLIBDIR/glibmm2:$OURLIBDIR/gtkmm2/atk:$OURLIBDIR/gtkmm2/pango:$OURLIBDIR/gtkmm2/gdk:$OURLIBDIR/gtkmm2/gtk:$OURLIBDIR/canvas:$OURLIBDIR/libsndfile:$OURLIBDIR/evoral:$OURLIBDIR/evoral/src/libsmf:$OURLIBDIR/audiographer:$OURLIBDIR/timecode:$OURLIBDIR/taglib:$OURLIBDIR/libltc:$OURLIBDIR/qm-dsp:$OURLIBDIR/ardouralsautil:$OURLIBDIR/ptformat:$BUILD_ROOT/gtk2_ardour
+OURLIBS=$OURLIBDIR/surfaces/control_protocol:$OURLIBDIR/ardour:$OURLIBDIR/midi++2:$OURLIBDIR/pbd:$OURLIBDIR/gtkmm2ext:$OURLIBDIR/glibmm2:$OURLIBDIR/canvas:$OURLIBDIR/widgets:$OURLIBDIR/waveview:$OURLIBDIR/evoral:$OURLIBDIR/evoral/src/libsmf:$OURLIBDIR/audiographer:$OURLIBDIR/timecode:$OURLIBDIR/libltc:$OURLIBDIR/qm-dsp:$OURLIBDIR/ardouralsautil:$OURLIBDIR/ptformat:$BUILD_ROOT/gtk2_ardour
 
 echo $OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
 
index 6073e6c99b596bc3bfbd200b378587f76c9a3b50..bfb7381e41cb1933a790f51926f1087d58209220 100755 (executable)
@@ -137,6 +137,8 @@ cp build/libs/evoral/evoral-*.dll $DESTDIR/bin/
 cp build/libs/ardour/ardour-*.dll $DESTDIR/bin/
 cp build/libs/timecode/timecode.dll $DESTDIR/bin/
 cp build/libs/canvas/canvas-*.dll $DESTDIR/bin/
+cp build/libs/widgets/widgets-*.dll $DESTDIR/bin/
+cp build/libs/waveview/waveview-*.dll $DESTDIR/bin/
 cp build/libs/pbd/pbd-*.dll $DESTDIR/bin/
 cp build/libs/ptformat/ptformat-*.dll $DESTDIR/bin/
 cp build/libs/audiographer/audiographer-*.dll $DESTDIR/bin/