From b97ab7d7bc0af68c1079a192b3c7924cbe61936e Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Sun, 20 Oct 2013 09:27:35 +1000 Subject: 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. --- libs/midi++2/mmc.cc | 8 ++++++++ libs/midi++2/wscript | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'libs/midi++2') 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 #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 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') -- cgit v1.2.3