diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2013-10-20 09:27:35 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2013-10-20 09:27:35 +1000 |
commit | b97ab7d7bc0af68c1079a192b3c7924cbe61936e (patch) | |
tree | 69d4e8058888c3eebee3127c3f68d7ead85488b4 | |
parent | f85c67501c2bef578eeb53741d0dfecaa0c723df (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.
-rw-r--r-- | libs/ardour/wscript | 2 | ||||
-rw-r--r-- | libs/midi++2/mmc.cc | 8 | ||||
-rw-r--r-- | libs/midi++2/wscript | 2 |
3 files changed, 10 insertions, 2 deletions
diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 33351bd8b1..82a4af6388 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -341,7 +341,7 @@ def build(bld): 'OSX','BOOST','CURL','DL'] obj.use = ['libpbd','libmidipp','libevoral','libvamphost', 'libvampplugin','libtaglib','librubberband', - 'libaudiographer', 'ltc', 'timecode' ] + 'libaudiographer', 'ltc', 'timecode_includes' ] obj.vnum = LIBARDOUR_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') obj.defines += [ 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') |