summaryrefslogtreecommitdiff
path: root/libs/midi++2
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2013-10-20 09:27:35 +1000
committerTim Mayberry <mojofunk@gmail.com>2013-10-20 09:27:35 +1000
commitb97ab7d7bc0af68c1079a192b3c7924cbe61936e (patch)
tree69d4e8058888c3eebee3127c3f68d7ead85488b4 /libs/midi++2
parentf85c67501c2bef578eeb53741d0dfecaa0c723df (diff)
Statically link libtimecode into libmidi++ instead of libardour
This is necessary to get the libmidi++ test to work as libmidi++ has unresolved symbols in libtimecode. This was not a problem when libtimecode was statically linked into libardour if the executable depended on both libtimecode and libardour as the symbols would get resolved. This is not true for the midi++ test case as it doesn't depend on libardour Also as libmidi++ only references symbols from one object file in the libtimecode static archive only that object file gets included/exported from libmidi++. This is fixed by adding a dummy reference to a symbol in the other object file in the libtimecode static archive.
Diffstat (limited to 'libs/midi++2')
-rw-r--r--libs/midi++2/mmc.cc8
-rw-r--r--libs/midi++2/wscript2
2 files changed, 9 insertions, 1 deletions
diff --git a/libs/midi++2/mmc.cc b/libs/midi++2/mmc.cc
index b93dc0f260..a3f8f01fe4 100644
--- a/libs/midi++2/mmc.cc
+++ b/libs/midi++2/mmc.cc
@@ -22,6 +22,7 @@
#include <map>
#include "timecode/time.h"
+#include "timecode/bbt_time.h"
#include "pbd/error.h"
@@ -33,6 +34,13 @@ using namespace std;
using namespace MIDI;
using namespace PBD;
+/**
+ * As libtimecode is linked statically to libmidi++ this
+ * is necessary to pull in all the symbols from libtimecode
+ * so they are exported for other users of libtimecode.
+ */
+double tmp = Timecode::BBT_Time::ticks_per_beat;
+
static std::map<int,string> mmc_cmd_map;
static void build_mmc_cmd_map ()
{
diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript
index b500bcaa4e..c05075a5f1 100644
--- a/libs/midi++2/wscript
+++ b/libs/midi++2/wscript
@@ -76,7 +76,7 @@ def build(bld):
obj.name = 'libmidipp'
obj.target = 'midipp'
obj.uselib = 'GLIBMM SIGCPP XML JACK OSX'
- obj.use = 'libpbd libevoral timecode_includes'
+ obj.use = 'libpbd libevoral timecode'
obj.vnum = LIBMIDIPP_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')