From 5896d773e437dafd76bc643b0437391571b41e89 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2013 13:15:24 -0400 Subject: add export control to control protocol library --- .../control_protocol/control_protocol/basic_ui.h | 4 +- .../control_protocol/control_protocol.h | 3 +- .../control_protocol/control_protocol/visibility.h | 56 ++++++++++++++++++++++ libs/surfaces/control_protocol/wscript | 23 ++++++--- 4 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 libs/surfaces/control_protocol/control_protocol/visibility.h (limited to 'libs/surfaces') diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h index 96a1227463..180688e616 100644 --- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h +++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h @@ -32,12 +32,14 @@ #include "timecode/time.h" +#include "control_protocol/visibility.h" + namespace ARDOUR { class Session; class SessionEvent; } -class BasicUI { +class LIBCONTROLCP_API BasicUI { public: BasicUI (ARDOUR::Session&); virtual ~BasicUI (); diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h index 0c849064bb..55ea459cae 100644 --- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h +++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h @@ -30,6 +30,7 @@ #include "pbd/stateful.h" #include "pbd/signals.h" +#include "control_protocol/visibility.h" #include "control_protocol/basic_ui.h" #include "control_protocol/types.h" @@ -39,7 +40,7 @@ class Route; class Session; class Bundle; -class ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList, public BasicUI +class LIBCONTROLCP_API ControlProtocol : public PBD::Stateful, public PBD::ScopedConnectionList, public BasicUI { public: ControlProtocol (Session&, std::string name); diff --git a/libs/surfaces/control_protocol/control_protocol/visibility.h b/libs/surfaces/control_protocol/control_protocol/visibility.h new file mode 100644 index 0000000000..40c83b8580 --- /dev/null +++ b/libs/surfaces/control_protocol/control_protocol/visibility.h @@ -0,0 +1,56 @@ +/* + Copyright (C) 2013 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __libcontrolcp_visibility_h__ +#define __libcontrolcp_visibility_h__ + +/* _WIN32 is defined by most compilers targetting Windows, but within the + * controlcp source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending + * on how a Windows build is built. + */ + +#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) + #define LIBCONTROLCP_DLL_IMPORT __declspec(dllimport) + #define LIBCONTROLCP_DLL_EXPORT __declspec(dllexport) + #define LIBCONTROLCP_DLL_LOCAL +#else + #if __GNUC__ >= 4 + #define LIBCONTROLCP_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBCONTROLCP_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBCONTROLCP_DLL_LOCAL __attribute__ ((visibility ("hidden"))) + #else + #define LIBCONTROLCP_DLL_IMPORT + #define LIBCONTROLCP_DLL_EXPORT + #define LIBCONTROLCP_DLL_LOCAL + #endif +#endif + +#ifdef LIBCONTROLCP_DLL // libcontrolcp is a DLL +#ifdef LIBCONTROLCP_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it) + #define LIBCONTROLCP_API LIBCONTROLCP_DLL_EXPORT +#else + #define LIBCONTROLCP_API LIBCONTROLCP_DLL_IMPORT +#endif +#define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL +#else /* static lib, not DLL */ +#define LIBCONTROLCP_API +#define LIBCONTROLCP_LOCAL +#endif + +#endif /* __libcontrolcp_visibility_h__ */ diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index 2ba48d5138..eb2db5d269 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -13,6 +13,11 @@ LIBARDOUR_CP_LIB_VERSION = '4.1.0' top = '.' out = 'build' +controlcp_sources = [ + 'basic_ui.cc', + 'control_protocol.cc', + ] + def options(opt): autowaf.set_options(opt) @@ -20,13 +25,19 @@ def configure(conf): autowaf.configure(conf) def build(bld): - obj = bld(features = 'cxx cxxshlib') - obj.source = ''' - basic_ui.cc - control_protocol.cc - ''' + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=controlcp_sources) + # defines for this library + obj.defines = [ 'LIBCONTROLCP_DLL=1', 'LIBCONTROLCP_DLL_EXPORTS=1' ] + # internal shared libs that we use + obj.defines += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1' ] + else: + obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=controlcp_sources) + obj.cxxflags = [ '-fPIC' ] + obj.defines = [ ] + obj.export_includes = ['.', './control_protocol' ] - obj.cxxflags = '-DPACKAGE="ardour_cp" -fPIC' + obj.defines += [ 'PACKAGE="ardour_cp"' ] obj.includes = ['.', './control_protocol'] obj.name = 'libardour_cp' obj.target = 'ardourcp' -- cgit v1.2.3 From 98c93ee53effd43ec54abaa6c47cf41925ae349e Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2013 13:30:18 -0400 Subject: tweak up DLL=1 defs for control surfaces --- libs/surfaces/frontier/wscript | 6 ++++-- libs/surfaces/generic_midi/wscript | 6 ++++-- libs/surfaces/mackie/wscript | 4 +++- libs/surfaces/osc/wscript | 4 +++- libs/surfaces/tranzport/wscript | 4 +++- libs/surfaces/wiimote/wscript | 4 +++- 6 files changed, 20 insertions(+), 8 deletions(-) (limited to 'libs/surfaces') diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript index c23b3cf3c9..aa7d119895 100644 --- a/libs/surfaces/frontier/wscript +++ b/libs/surfaces/frontier/wscript @@ -34,11 +34,13 @@ def build(bld): midicontrollable.cc ''' obj.export_includes = ['./generic_midi'] - obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' + obj.defines = [ 'PACKAGE="ardour_frontier"' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1' ] obj.includes = ['.', './generic_midi'] obj.name = 'libgeneric_midi' obj.target = 'generic_midi' - obj.use = 'libardour libsurfaces' + obj.use = 'libardour libardourcp' obj.vnum = LIBSURFACES_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript index 4cdf2602fd..1cab8fdd2e 100644 --- a/libs/surfaces/generic_midi/wscript +++ b/libs/surfaces/generic_midi/wscript @@ -30,7 +30,9 @@ def build(bld): midiaction.cc ''' obj.export_includes = ['.'] - obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' + obj.defines = [ 'PACKAGE="ardour_genericmidi"' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] obj.includes = ['.', './generic_midi'] obj.name = 'libardour_generic_midi' obj.target = 'ardour_generic_midi' @@ -38,7 +40,7 @@ def build(bld): obj.use = 'libardour libardour_cp libgtkmm2ext libpbd' obj.vnum = LIBARDOUR_GENERIC_MIDI_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') - obj.defines = [ + obj.defines += [ 'PROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"' ] diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript index fe276c4e82..3989833544 100644 --- a/libs/surfaces/mackie/wscript +++ b/libs/surfaces/mackie/wscript @@ -42,7 +42,9 @@ def build(bld): types.cc ''' obj.export_includes = ['./mackie'] - obj.cxxflags = '-DPACKAGE="ardour_mackie"' + obj.defines = [ 'PACKAGE="ardour_mackie"' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] # need ../libs because some GTK2 header files require stuff there obj.includes = ['.', '../libs'] obj.name = 'libardour_mcp' diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript index c2c12616c1..d52909aa88 100644 --- a/libs/surfaces/osc/wscript +++ b/libs/surfaces/osc/wscript @@ -27,7 +27,9 @@ def build(bld): interface.cc ''' obj.export_includes = ['.'] - obj.cxxflags = '-DPACKAGE="ardour_cp"' + obj.defines = [ 'PACKAGE="ardour_osc"' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1' ] obj.includes = ['.', './osc'] obj.name = 'libardour_osc' obj.target = 'ardour_osc' diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript index 311a9a2045..7d80295fba 100644 --- a/libs/surfaces/tranzport/wscript +++ b/libs/surfaces/tranzport/wscript @@ -39,7 +39,9 @@ def build(bld): wheel_modes.cc ''' obj.export_includes = ['./tranzport'] - obj.cxxflags = '-DPACKAGE="ardour_tranzport"' + obj.defines = [ 'PACKAGE="ardour_tranzport"' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] obj.includes = ['.', './tranzport'] obj.name = 'libardour_tranzport' obj.target = 'ardour_tranzport' diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript index 3a4bd109c2..eb4e2306e8 100644 --- a/libs/surfaces/wiimote/wscript +++ b/libs/surfaces/wiimote/wscript @@ -25,7 +25,9 @@ def build(bld): interface.cc ''' obj.export_includes = ['./wiimote'] - obj.cxxflags = '-DPACKAGE="ardour_wiimote"' + obj.defines = [ 'PACKAGE="ardour_wiimote"' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] obj.includes = ['.', '../libs'] obj.name = 'libardour_wiimote' obj.target = 'ardour_wiimote' -- cgit v1.2.3 From 2fab8182cc1e40844652922acf56cc0d71bc2051 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2013 14:36:41 -0400 Subject: add -fvisibility=hidden to libgtkmm2ext, and make things work --- libs/ardour/ardour/midi_ui.h | 1 + libs/gtkmm2ext/gtk_ui.cc | 1 + libs/gtkmm2ext/gtkmm2ext/actions.h | 54 +++++++++++++------------- libs/gtkmm2ext/gtkmm2ext/gtk_ui.h | 13 ++++--- libs/gtkmm2ext/wscript | 2 + libs/pbd/pbd/abstract_ui.h | 19 ++++++++- libs/pbd/pbd/libpbd_visibility.h | 2 - libs/surfaces/mackie/mackie_control_protocol.h | 1 + libs/surfaces/osc/osc.h | 1 + libs/surfaces/wiimote/wiimote.h | 1 + 10 files changed, 60 insertions(+), 35 deletions(-) (limited to 'libs/surfaces') diff --git a/libs/ardour/ardour/midi_ui.h b/libs/ardour/ardour/midi_ui.h index 469f293770..e99d6bf499 100644 --- a/libs/ardour/ardour/midi_ui.h +++ b/libs/ardour/ardour/midi_ui.h @@ -22,6 +22,7 @@ #include +#define ABSTRACT_UI_EXPORTS #include "pbd/abstract_ui.h" #include "pbd/signals.h" #include "pbd/stacktrace.h" diff --git a/libs/gtkmm2ext/gtk_ui.cc b/libs/gtkmm2ext/gtk_ui.cc index d9e4c871a6..fc94657f6d 100644 --- a/libs/gtkmm2ext/gtk_ui.cc +++ b/libs/gtkmm2ext/gtk_ui.cc @@ -43,6 +43,7 @@ #include "gtkmm2ext/actions.h" #include "gtkmm2ext/activatable.h" #include "gtkmm2ext/actions.h" +#include "gtkmm2ext/gui_thread.h" #include "i18n.h" diff --git a/libs/gtkmm2ext/gtkmm2ext/actions.h b/libs/gtkmm2ext/gtkmm2ext/actions.h index 9101f8ea92..d92f85bb6e 100644 --- a/libs/gtkmm2ext/gtkmm2ext/actions.h +++ b/libs/gtkmm2ext/gtkmm2ext/actions.h @@ -28,67 +28,69 @@ #include #include +#include "gtkmm2ext/visibility.h" + namespace Gtk { class UIManager; } namespace ActionManager { - extern std::string unbound_string; /* the key string returned if an action is not bound */ - extern Glib::RefPtr ui_manager; + LIBGTKMM2EXT_API extern std::string unbound_string; /* the key string returned if an action is not bound */ + LIBGTKMM2EXT_API extern Glib::RefPtr ui_manager; - extern void set_sensitive (std::vector >& actions, bool); - extern std::string get_key_representation (const std::string& accel_path, Gtk::AccelKey& key); + LIBGTKMM2EXT_API extern void set_sensitive (std::vector >& actions, bool); + LIBGTKMM2EXT_API extern std::string get_key_representation (const std::string& accel_path, Gtk::AccelKey& key); - extern Gtk::Widget* get_widget (const char * name); - extern Glib::RefPtr get_action (const char* group, const char* name); - extern Glib::RefPtr get_action (const char* path); - extern Glib::RefPtr get_action_from_name (const char* name); - extern void do_action (const char* group, const char* name); - extern void set_toggle_action (const char* group, const char* name, bool); + LIBGTKMM2EXT_API extern Gtk::Widget* get_widget (const char * name); + LIBGTKMM2EXT_API extern Glib::RefPtr get_action (const char* group, const char* name); + LIBGTKMM2EXT_API extern Glib::RefPtr get_action (const char* path); + LIBGTKMM2EXT_API extern Glib::RefPtr get_action_from_name (const char* name); + LIBGTKMM2EXT_API extern void do_action (const char* group, const char* name); + LIBGTKMM2EXT_API extern void set_toggle_action (const char* group, const char* name, bool); - extern void add_action_group (Glib::RefPtr); + LIBGTKMM2EXT_API extern void add_action_group (Glib::RefPtr); - extern Glib::RefPtr register_action (Glib::RefPtr group, + LIBGTKMM2EXT_API extern Glib::RefPtr register_action (Glib::RefPtr group, const char * name, const char * label); - extern Glib::RefPtr register_action (Glib::RefPtr group, + LIBGTKMM2EXT_API extern Glib::RefPtr register_action (Glib::RefPtr group, const char * name, const char * label, sigc::slot sl, guint key, Gdk::ModifierType mods); - extern Glib::RefPtr register_action (Glib::RefPtr group, + LIBGTKMM2EXT_API extern Glib::RefPtr register_action (Glib::RefPtr group, const char * name, const char * label, sigc::slot sl); - extern Glib::RefPtr register_radio_action (Glib::RefPtr group, Gtk::RadioAction::Group&, + LIBGTKMM2EXT_API extern Glib::RefPtr register_radio_action (Glib::RefPtr group, Gtk::RadioAction::Group&, const char * name, const char * label, sigc::slot sl, guint key, Gdk::ModifierType mods); - extern Glib::RefPtr register_radio_action (Glib::RefPtr group, Gtk::RadioAction::Group&, + LIBGTKMM2EXT_API extern Glib::RefPtr register_radio_action (Glib::RefPtr group, Gtk::RadioAction::Group&, const char * name, const char * label, sigc::slot sl); - extern Glib::RefPtr register_radio_action (Glib::RefPtr group, Gtk::RadioAction::Group&, + LIBGTKMM2EXT_API extern Glib::RefPtr register_radio_action (Glib::RefPtr group, Gtk::RadioAction::Group&, std::string const &, std::string const &, std::string const &, sigc::slot sl); - extern Glib::RefPtr register_toggle_action (Glib::RefPtr group, + LIBGTKMM2EXT_API extern Glib::RefPtr register_toggle_action (Glib::RefPtr group, const char * name, const char * label, sigc::slot sl, guint key, Gdk::ModifierType mods); - extern Glib::RefPtr register_toggle_action (Glib::RefPtr group, + LIBGTKMM2EXT_API extern Glib::RefPtr register_toggle_action (Glib::RefPtr group, std::string const &, std::string const &, std::string const &, sigc::slot sl); - extern Glib::RefPtr register_toggle_action (Glib::RefPtr group, + LIBGTKMM2EXT_API extern Glib::RefPtr register_toggle_action (Glib::RefPtr group, const char * name, const char * label, sigc::slot sl); - extern bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key); + LIBGTKMM2EXT_API extern bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key); - extern void get_all_actions (std::vector& names, + LIBGTKMM2EXT_API extern void get_all_actions (std::vector& names, std::vector& paths, std::vector& tooltips, std::vector& keys, std::vector& bindings); - extern void get_all_actions (std::vector& groups, + LIBGTKMM2EXT_API extern void get_all_actions (std::vector& groups, std::vector& paths, std::vector& tooltips, std::vector& bindings); - extern void check_toggleaction (std::string); - extern void uncheck_toggleaction (std::string); - extern void set_toggleaction_state (std::string, bool); + LIBGTKMM2EXT_API extern void check_toggleaction (std::string); + LIBGTKMM2EXT_API extern void uncheck_toggleaction (std::string); + LIBGTKMM2EXT_API extern void set_toggleaction_state (std::string, bool); }; #endif /* __libgtkmm2ext_actions_h__ */ diff --git a/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h b/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h index 2e5cc11d23..b726eb89ac 100644 --- a/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h +++ b/libs/gtkmm2ext/gtkmm2ext/gtk_ui.h @@ -37,12 +37,13 @@ #include #include #include -#include -#include - -#include -#include -#include + +#define ABSTRACT_UI_EXPORTS +#include "pbd/abstract_ui.h" +#include "pbd/ringbufferNPT.h" +#include "pbd/pool.h" +#include "pbd/error.h" +#include "pbd/receiver.h" #include "gtkmm2ext/visibility.h" diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index 7600c8a089..955b133d33 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -90,6 +90,8 @@ def build(bld): obj.defines = [ 'LIBGTKMM2EXT_DLL=1', 'LIBGTKMM2EXT_DLL_EXPORTS=1' ] # internal shared libs that we use obj.defines += [ 'LIBPBD_DLL=1' ] + obj.cxxflags = [ '-fvisibility=hidden' ] + obj.cflags = [ '-fvisibility=hidden' ] else: obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=gtkmm2ext_sources) obj.cxxflags = [ '-fPIC' ] diff --git a/libs/pbd/pbd/abstract_ui.h b/libs/pbd/pbd/abstract_ui.h index e78cf1ce28..f78ba26090 100644 --- a/libs/pbd/pbd/abstract_ui.h +++ b/libs/pbd/pbd/abstract_ui.h @@ -32,10 +32,27 @@ #include "pbd/signals.h" #include "pbd/base_ui.h" +/* We have a special case in libpbd of a template class that gets instantiated + * as the base class of several classes in other libraries. It is not possible + * to use LIBFOO_API to mark this visible, because the FOO in each case is + * different. So we define this generic visible/export/hidden/import pair + * of macros to try to deal with this special case. These should NEVER be + * used anywhere except AbstractUI (or similar cases if they arise. + * + * Note the assumption here that other libs are being built as DLLs if this one is. + */ + +#ifdef ABSTRACT_UI_EXPORTS +#define ABSTRACT_UI_API LIBPBD_DLL_EXPORT +#else +#define ABSTRACT_UI_API LIBPBD_DLL_IMPORT +#endif + + class Touchable; template -class AbstractUI : public BaseUI +class ABSTRACT_UI_API AbstractUI : public BaseUI /* see notes in visibility.h about why this is not LIBPBD_API */ { public: AbstractUI (const std::string& name); diff --git a/libs/pbd/pbd/libpbd_visibility.h b/libs/pbd/pbd/libpbd_visibility.h index 0aa309a4a4..e2c6235f0b 100644 --- a/libs/pbd/pbd/libpbd_visibility.h +++ b/libs/pbd/pbd/libpbd_visibility.h @@ -38,8 +38,6 @@ #define LIBPBD_DLL_IMPORT #define LIBPBD_DLL_EXPORT #define LIBPBD_DLL_LOCAL - #define LIBPBD_DLL_IMPORT_CLASS - #define LIBPBD_DLL_EXPORT_CLASS #endif #endif diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 4669247726..81e1436938 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -28,6 +28,7 @@ #include #include +#define ABSTRACT_UI_EXPORTS #include "pbd/abstract_ui.h" #include "midi++/types.h" #include "ardour/types.h" diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index 84dd0d9c86..2479eceaff 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -31,6 +31,7 @@ #include +#define ABSTRACT_UI_EXPORTS #include "pbd/abstract_ui.h" #include "ardour/types.h" diff --git a/libs/surfaces/wiimote/wiimote.h b/libs/surfaces/wiimote/wiimote.h index f6ac8edc41..6edadf6c64 100644 --- a/libs/surfaces/wiimote/wiimote.h +++ b/libs/surfaces/wiimote/wiimote.h @@ -23,6 +23,7 @@ #include +#define ABSTRACT_UI_EXPORTS #include "pbd/abstract_ui.h" #include "ardour/types.h" #include "control_protocol/control_protocol.h" -- cgit v1.2.3 From 61c1956ef994483d92828169b7b032d5520d2256 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2013 15:02:20 -0400 Subject: add -fvisibility=hidden to evoral, and make things work --- libs/backends/jack/wscript | 2 ++ libs/evoral/evoral/visibility.h | 6 +++--- libs/evoral/wscript | 6 +++++- libs/midi++2/wscript | 2 +- libs/panners/1in2out/wscript | 2 +- libs/panners/2in2out/wscript | 2 +- libs/panners/vbap/wscript | 2 +- libs/surfaces/control_protocol/wscript | 2 +- libs/surfaces/generic_midi/wscript | 2 +- libs/surfaces/mackie/wscript | 2 +- libs/surfaces/osc/wscript | 2 +- libs/surfaces/wiimote/wscript | 2 +- 12 files changed, 19 insertions(+), 13 deletions(-) (limited to 'libs/surfaces') diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript index d76ec095ca..1e913bb18c 100644 --- a/libs/backends/jack/wscript +++ b/libs/backends/jack/wscript @@ -42,6 +42,8 @@ def build(bld): obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"', 'ARDOURBACKEND_DLL_EXPORTS' ] + if bld.is_defined ('INTERNAL_SHARED_LIBS'): + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] # # device discovery code in the jack backend needs ALSA diff --git a/libs/evoral/evoral/visibility.h b/libs/evoral/evoral/visibility.h index 6b30bd1c9f..380caca2fd 100644 --- a/libs/evoral/evoral/visibility.h +++ b/libs/evoral/evoral/visibility.h @@ -17,8 +17,8 @@ */ -#ifndef __libevoral_libevoral_visibility_h__ -#define __libevoral_libevoral_visibility_h__ +#ifndef __libevoral_visibility_h__ +#define __libevoral_visibility_h__ /* _WIN32 is defined by most compilers targetting Windows, but within the * evoral source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending @@ -53,4 +53,4 @@ #define LIBEVORAL_LOCAL #endif -#endif /* __libevoral_libevoral_visibility_h__ */ +#endif /* __libevoral_visibility_h__ */ diff --git a/libs/evoral/wscript b/libs/evoral/wscript index f309bc7031..569aa0fc6b 100644 --- a/libs/evoral/wscript +++ b/libs/evoral/wscript @@ -90,8 +90,12 @@ def build(bld): # Library if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=lib_source) + # DLL exports for this library obj.defines = [ 'LIBEVORAL_DLL=1', 'LIBEVORAL_DLL_EXPORTS=1' ] - obj.defines = [ 'LIBPBD_DLL=1' ] + # DLL imports for other libraries + obj.defines += [ 'LIBPBD_DLL=1' ] + obj.cxxflags = [ '-fvisibility=hidden' ] + obj.cflags = [ '-fvisibility=hidden' ] else: obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=lib_source) obj.cxxflags = [ '-fPIC' ] diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index bc3f3313a2..c950d13192 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -63,7 +63,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources) obj.defines = [ 'LIBMIDIPP_DLL=1', 'LIBMIDIPP_DLL_EXPORTS=1' ] - obj.defines += [ 'LIBPBD_DLL=1' ] + obj.defines += [ 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] else: obj = bld.stlib(features = 'cxx cxxstlib', source=libmidi_sources) obj.cxxflags = [ '-fPIC', '-DWITH_JACK_MIDI' ] diff --git a/libs/panners/1in2out/wscript b/libs/panners/1in2out/wscript index c26cc0546d..ad9c5a6b4c 100644 --- a/libs/panners/1in2out/wscript +++ b/libs/panners/1in2out/wscript @@ -24,7 +24,7 @@ def build(bld): obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="libardour_pan1in2out"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.'] obj.name = 'libardour_pan1in2out' obj.target = 'pan1in2out' diff --git a/libs/panners/2in2out/wscript b/libs/panners/2in2out/wscript index 72eeda917f..2d83205262 100644 --- a/libs/panners/2in2out/wscript +++ b/libs/panners/2in2out/wscript @@ -24,7 +24,7 @@ def build(bld): obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="libardour_pan2in2out"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.'] obj.name = 'libardour_pan2in2out' obj.target = 'pan2in2out' diff --git a/libs/panners/vbap/wscript b/libs/panners/vbap/wscript index 8d4356b828..4113aba53c 100644 --- a/libs/panners/vbap/wscript +++ b/libs/panners/vbap/wscript @@ -24,7 +24,7 @@ def build(bld): obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="libardour_panvbap"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL_=1', 'LIBPBD_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL_=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.'] obj.name = 'libardour_panvbap' obj.target = 'panvbap' diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index eb2db5d269..6cc285454b 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -30,7 +30,7 @@ def build(bld): # defines for this library obj.defines = [ 'LIBCONTROLCP_DLL=1', 'LIBCONTROLCP_DLL_EXPORTS=1' ] # internal shared libs that we use - obj.defines += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1' ] + obj.defines += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1', 'LIBEVORAL_DLL=1' ] else: obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=controlcp_sources) obj.cxxflags = [ '-fPIC' ] diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript index 1cab8fdd2e..cdc68529ac 100644 --- a/libs/surfaces/generic_midi/wscript +++ b/libs/surfaces/generic_midi/wscript @@ -32,7 +32,7 @@ def build(bld): obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="ardour_genericmidi"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.', './generic_midi'] obj.name = 'libardour_generic_midi' obj.target = 'ardour_generic_midi' diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript index 3989833544..d76a26f651 100644 --- a/libs/surfaces/mackie/wscript +++ b/libs/surfaces/mackie/wscript @@ -44,7 +44,7 @@ def build(bld): obj.export_includes = ['./mackie'] obj.defines = [ 'PACKAGE="ardour_mackie"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ] # need ../libs because some GTK2 header files require stuff there obj.includes = ['.', '../libs'] obj.name = 'libardour_mcp' diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript index d52909aa88..88174c0faf 100644 --- a/libs/surfaces/osc/wscript +++ b/libs/surfaces/osc/wscript @@ -29,7 +29,7 @@ def build(bld): obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="ardour_osc"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.', './osc'] obj.name = 'libardour_osc' obj.target = 'ardour_osc' diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript index eb4e2306e8..623aa960db 100644 --- a/libs/surfaces/wiimote/wscript +++ b/libs/surfaces/wiimote/wscript @@ -27,7 +27,7 @@ def build(bld): obj.export_includes = ['./wiimote'] obj.defines = [ 'PACKAGE="ardour_wiimote"' ] if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] + obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.', '../libs'] obj.name = 'libardour_wiimote' obj.target = 'ardour_wiimote' -- cgit v1.2.3 From 5b2a5d77b8160c745553eb85c47a211067eea90d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 17 Oct 2013 15:09:28 -0400 Subject: add -fvisibility=hidden to libardour_cp (control protocol) --- libs/surfaces/control_protocol/wscript | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libs/surfaces') diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index 6cc285454b..e1e1af950c 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -31,6 +31,8 @@ def build(bld): obj.defines = [ 'LIBCONTROLCP_DLL=1', 'LIBCONTROLCP_DLL_EXPORTS=1' ] # internal shared libs that we use obj.defines += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1', 'LIBEVORAL_DLL=1' ] + obj.cxxflags = [ '-fvisibility=hidden' ] + obj.cflags = [ '-fvisibility=hidden' ] else: obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=controlcp_sources) obj.cxxflags = [ '-fPIC' ] -- cgit v1.2.3 From 683496c501641fb5d7d47bdf9064aed72755ca61 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 18 Oct 2013 11:11:59 -0400 Subject: use libltc and libtimecode as static libs, and upgrade to waf 1.7 This is slightly awkward. It is important that we only link once to the static lib. Doing this at executable link time did not work, possibly because waf insisted on putting the two static libraries at the front of the link list. So instead libardour is now the point where linkage to these libraries occurs (and nowhere else). This should never be changed unless the change just moves the linkage point to another location. Also fix a bug with the libardour version tha was picked up by waf 1.7 --- gtk2_ardour/wscript | 5 ++++- libs/ardour/wscript | 4 ++-- libs/midi++2/wscript | 2 +- libs/surfaces/control_protocol/wscript | 2 +- waf | Bin 94860 -> 97994 bytes 5 files changed, 8 insertions(+), 5 deletions(-) (limited to 'libs/surfaces') diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index ebc28ebf8f..cc494c2ba2 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -434,7 +434,10 @@ def build(bld): 'ardour', 'libardour_cp', 'libgtkmm2ext', - 'libtaglib' ] + 'libtaglib', + 'timecode_includes' + ] + if sys.platform == 'darwin': obj.use += ' libappleutility' obj.defines += [ diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 6fec6ae9d0..838e72279c 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -317,7 +317,7 @@ def build(bld): # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes - LIBARDOUR_LIB_VERSION = "3.0.0." + LIBARDOUR_LIB_VERSION = "3.0.0" # Library if bld.is_defined ('INTERNAL_SHARED_LIBS'): @@ -343,7 +343,7 @@ def build(bld): 'OSX','BOOST','CURL','DL'] obj.use = ['libpbd','libmidipp','libevoral','libvamphost', 'libvampplugin','libtaglib','librubberband', - 'libaudiographer','libltc','libtimecode'] + 'libaudiographer', 'ltc', 'timecode' ] obj.vnum = LIBARDOUR_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') obj.defines += [ diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index e27c4876ee..39a4411dc0 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -77,7 +77,7 @@ def build(bld): obj.name = 'libmidipp' obj.target = 'midipp' obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' - obj.use = 'libpbd libevoral libtimecode' + obj.use = 'libpbd libevoral timecode_includes' obj.vnum = LIBMIDIPP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index e1e1af950c..a597ca9e2a 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -43,7 +43,7 @@ def build(bld): obj.includes = ['.', './control_protocol'] obj.name = 'libardour_cp' obj.target = 'ardourcp' - obj.use = 'ardour libtimecode' + obj.use = 'ardour' obj.vnum = LIBARDOUR_CP_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') diff --git a/waf b/waf index 6780539c8e..9d2582a24a 100755 Binary files a/waf and b/waf differ -- cgit v1.2.3 From f85c67501c2bef578eeb53741d0dfecaa0c723df Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 18 Oct 2013 11:50:44 -0400 Subject: reverse the visibility.h files assumptions that we don't build shared libs by default This avoids having to define define LIBFOO_DLL=1 all over the place. If we ever go with static libs we will need to define LIBFOO_STATIC=1 but hopefully in some central location like the top level wscript. Oh, and I also dropped support for gcc older than version 4.x because ardour will already not build on such an old version. --- gtk2_ardour/wscript | 13 ---------- libs/ardour/ardour/libardour_visibility.h | 28 ++++++++------------ libs/ardour/ardour/visibility.h | 12 +++------ libs/ardour/wscript | 4 +-- libs/audiographer/audiographer/visibility.h | 28 ++++++++------------ libs/audiographer/wscript | 4 +-- libs/backends/jack/wscript | 2 -- libs/evoral/evoral/visibility.h | 28 ++++++++------------ libs/evoral/wscript | 4 +-- libs/gtkmm2ext/gtkmm2ext/visibility.h | 30 +++++++++------------- libs/gtkmm2ext/wscript | 4 +-- libs/midi++2/midi++/libmidi_visibility.h | 30 +++++++++------------- libs/midi++2/wscript | 3 +-- libs/panners/1in2out/wscript | 2 -- libs/panners/2in2out/wscript | 2 -- libs/panners/vbap/wscript | 2 -- libs/pbd/pbd/libpbd_visibility.h | 28 ++++++++------------ libs/pbd/wscript | 4 +-- .../control_protocol/control_protocol/visibility.h | 28 ++++++++------------ libs/surfaces/control_protocol/wscript | 4 +-- libs/surfaces/frontier/wscript | 2 -- libs/surfaces/generic_midi/wscript | 2 -- libs/surfaces/mackie/wscript | 2 -- libs/surfaces/osc/wscript | 2 -- libs/surfaces/tranzport/wscript | 2 -- libs/surfaces/wiimote/wscript | 2 -- 26 files changed, 89 insertions(+), 183 deletions(-) (limited to 'libs/surfaces') diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index cc494c2ba2..e96fdc1388 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -407,19 +407,6 @@ def build(bld): obj.includes = ['.'] obj.defines = [] - # if our internal libraries are built as DLL's, define - # the macros that activate the right stuff in headers - # for export/visibility to work on all platforms. - - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBPBD_DLL=1', - 'LIBARDOUR_DLL=1', - 'LIBMIDIPP_DLL=1', - 'LIBARDOUR_DLL=1', - 'LIBARDOUR_CP_DLL=1', - 'LIBGTKMM2EXT_DLL=1', - 'LIBEVORAL_DLL=1', - ] # continue with setup of obj, which could be a shared library # or an executable. diff --git a/libs/ardour/ardour/libardour_visibility.h b/libs/ardour/ardour/libardour_visibility.h index ed5cacf261..a41afca14d 100644 --- a/libs/ardour/ardour/libardour_visibility.h +++ b/libs/ardour/ardour/libardour_visibility.h @@ -30,27 +30,21 @@ #define LIBARDOUR_DLL_EXPORT __declspec(dllexport) #define LIBARDOUR_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBARDOUR_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBARDOUR_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBARDOUR_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBARDOUR_DLL_IMPORT - #define LIBARDOUR_DLL_EXPORT - #define LIBARDOUR_DLL_LOCAL - #endif + #define LIBARDOUR_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBARDOUR_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBARDOUR_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBARDOUR_DLL // libardour is a DLL -#ifdef LIBARDOUR_DLL_EXPORTS // defined if we are building the libardour DLL (instead of using it) - #define LIBARDOUR_API LIBARDOUR_DLL_EXPORT -#else - #define LIBARDOUR_API LIBARDOUR_DLL_IMPORT -#endif -#define LIBARDOUR_LOCAL LIBARDOUR_DLL_LOCAL -#else /* static lib, not DLL */ +#ifdef LIBARDOUR_STATIC // libardour is not a DLL #define LIBARDOUR_API #define LIBARDOUR_LOCAL +#else + #ifdef LIBARDOUR_DLL_EXPORTS // defined if we are building the libardour DLL (instead of using it) + #define LIBARDOUR_API LIBARDOUR_DLL_EXPORT + #else + #define LIBARDOUR_API LIBARDOUR_DLL_IMPORT + #endif + #define LIBARDOUR_LOCAL LIBARDOUR_DLL_LOCAL #endif #endif /* __libardour_libardour_visibility_h__ */ diff --git a/libs/ardour/ardour/visibility.h b/libs/ardour/ardour/visibility.h index 09287b877d..5b3e5d8996 100644 --- a/libs/ardour/ardour/visibility.h +++ b/libs/ardour/ardour/visibility.h @@ -26,19 +26,13 @@ */ #if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) - #define LIBARDOUR_HELPER_DLL_IMPORT __declspec(dllimport) - #define LIBARDOUR_HELPER_DLL_EXPORT __declspec(dllexport) - #define LIBARDOUR_HELPER_DLL_LOCAL + #define LIBARDOUR_HELPER_DLL_IMPORT __declspec(dllimport) + #define LIBARDOUR_HELPER_DLL_EXPORT __declspec(dllexport) + #define LIBARDOUR_HELPER_DLL_LOCAL #else - #if __GNUC__ >= 4 #define LIBARDOUR_HELPER_DLL_IMPORT __attribute__ ((visibility ("default"))) #define LIBARDOUR_HELPER_DLL_EXPORT __attribute__ ((visibility ("default"))) #define LIBARDOUR_HELPER_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBARDOUR_HELPER_DLL_IMPORT - #define LIBARDOUR_HELPER_DLL_EXPORT - #define LIBARDOUR_HELPER_DLL_LOCAL - #endif #endif #endif /* __libardour_visibility_h__ */ diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 838e72279c..33351bd8b1 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -323,9 +323,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=libardour_sources) # macros for this shared library - obj.defines = [ 'LIBARDOUR_DLL=1', 'LIBARDOUR_DLL_EXPORTS=1' ] - # macros for this other internal shared libraries that we use - obj.defines += [ 'LIBEVORAL_DLL=1', 'LIBMIDIPP_DLL=1', 'LIBPBD_DLL=1' ] + obj.defines = [ 'LIBARDOUR_DLL_EXPORTS=1' ] obj.cflags = [ '-fvisibility=hidden' ] obj.cxxflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/audiographer/audiographer/visibility.h b/libs/audiographer/audiographer/visibility.h index 8c149f9efd..72ce50bd25 100644 --- a/libs/audiographer/audiographer/visibility.h +++ b/libs/audiographer/audiographer/visibility.h @@ -30,27 +30,21 @@ #define LIBAUDIOGRAPHER_DLL_EXPORT __declspec(dllexport) #define LIBAUDIOGRAPHER_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBAUDIOGRAPHER_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBAUDIOGRAPHER_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBAUDIOGRAPHER_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBAUDIOGRAPHER_DLL_IMPORT - #define LIBAUDIOGRAPHER_DLL_EXPORT - #define LIBAUDIOGRAPHER_DLL_LOCAL - #endif + #define LIBAUDIOGRAPHER_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBAUDIOGRAPHER_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBAUDIOGRAPHER_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBAUDIOGRAPHER_DLL // libaudiographer is a DLL -#ifdef LIBAUDIOGRAPHER_DLL_EXPORTS // defined if we are building the libaudiographer DLL (instead of using it) - #define LIBAUDIOGRAPHER_API LIBAUDIOGRAPHER_DLL_EXPORT +#ifdef LIBAUDIOGRAPHER_STATIC // libaudiographer is not a DLL + #define LIBAUDIOGRAPHER_API + #define LIBAUDIOGRAPHER_LOCAL #else + #ifdef LIBAUDIOGRAPHER_DLL_EXPORTS // defined if we are building the libaudiographer DLL (instead of using it) + #define LIBAUDIOGRAPHER_API LIBAUDIOGRAPHER_DLL_EXPORT + #else #define LIBAUDIOGRAPHER_API LIBAUDIOGRAPHER_DLL_IMPORT -#endif -#define LIBAUDIOGRAPHER_LOCAL LIBAUDIOGRAPHER_DLL_LOCAL -#else /* static lib, not DLL */ -#define LIBAUDIOGRAPHER_API -#define LIBAUDIOGRAPHER_LOCAL + #endif + #define LIBAUDIOGRAPHER_LOCAL LIBAUDIOGRAPHER_DLL_LOCAL #endif #endif /* __libaudiographer_visibility_h__ */ diff --git a/libs/audiographer/wscript b/libs/audiographer/wscript index 9e2d1c4c3c..183b272518 100644 --- a/libs/audiographer/wscript +++ b/libs/audiographer/wscript @@ -67,9 +67,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): audiographer = bld.shlib(features = 'c cxx cshlib cxxshlib', source=audiographer_sources) # macros for this shared library - audiographer.defines = [ 'LIBAUDIOGRAPHER_DLL=1', 'LIBAUDIOGRAPHER_DLL_EXPORTS=1' ] - # macros for this other internal shared libraries that we use - audiographer.defines += [ 'LIBPBD_DLL=1' ] + audiographer.defines = [ 'LIBAUDIOGRAPHER_DLL_EXPORTS=1' ] audiographer.cflags = [ '-fvisibility=hidden' ] audiographer.cxxflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/backends/jack/wscript b/libs/backends/jack/wscript index 1e913bb18c..d76ec095ca 100644 --- a/libs/backends/jack/wscript +++ b/libs/backends/jack/wscript @@ -42,8 +42,6 @@ def build(bld): obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"', 'ARDOURBACKEND_DLL_EXPORTS' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] # # device discovery code in the jack backend needs ALSA diff --git a/libs/evoral/evoral/visibility.h b/libs/evoral/evoral/visibility.h index 380caca2fd..17c0b7730b 100644 --- a/libs/evoral/evoral/visibility.h +++ b/libs/evoral/evoral/visibility.h @@ -30,27 +30,21 @@ #define LIBEVORAL_DLL_EXPORT __declspec(dllexport) #define LIBEVORAL_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBEVORAL_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBEVORAL_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBEVORAL_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBEVORAL_DLL_IMPORT - #define LIBEVORAL_DLL_EXPORT - #define LIBEVORAL_DLL_LOCAL - #endif + #define LIBEVORAL_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBEVORAL_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBEVORAL_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBEVORAL_DLL // libevoral is a DLL -#ifdef LIBEVORAL_DLL_EXPORTS // defined if we are building the libevoral DLL (instead of using it) - #define LIBEVORAL_API LIBEVORAL_DLL_EXPORT +#ifdef LIBEVORAL_STATIC // libevoral is not a DLL + #define LIBEVORAL_API + #define LIBEVORAL_LOCAL #else + #ifdef LIBEVORAL_DLL_EXPORTS // defined if we are building the libevoral DLL (instead of using it) + #define LIBEVORAL_API LIBEVORAL_DLL_EXPORT + #else #define LIBEVORAL_API LIBEVORAL_DLL_IMPORT -#endif -#define LIBEVORAL_LOCAL LIBEVORAL_DLL_LOCAL -#else /* static lib, not DLL */ -#define LIBEVORAL_API -#define LIBEVORAL_LOCAL + #endif + #define LIBEVORAL_LOCAL LIBEVORAL_DLL_LOCAL #endif #endif /* __libevoral_visibility_h__ */ diff --git a/libs/evoral/wscript b/libs/evoral/wscript index 569aa0fc6b..30b20f2cbd 100644 --- a/libs/evoral/wscript +++ b/libs/evoral/wscript @@ -91,9 +91,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=lib_source) # DLL exports for this library - obj.defines = [ 'LIBEVORAL_DLL=1', 'LIBEVORAL_DLL_EXPORTS=1' ] - # DLL imports for other libraries - obj.defines += [ 'LIBPBD_DLL=1' ] + obj.defines = [ 'LIBEVORAL_DLL_EXPORTS=1' ] obj.cxxflags = [ '-fvisibility=hidden' ] obj.cflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/gtkmm2ext/gtkmm2ext/visibility.h b/libs/gtkmm2ext/gtkmm2ext/visibility.h index ce2d3e6e42..5a5fce3e8c 100644 --- a/libs/gtkmm2ext/gtkmm2ext/visibility.h +++ b/libs/gtkmm2ext/gtkmm2ext/visibility.h @@ -30,27 +30,21 @@ #define LIBGTKMM2EXT_DLL_EXPORT __declspec(dllexport) #define LIBGTKMM2EXT_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBGTKMM2EXT_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBGTKMM2EXT_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBGTKMM2EXT_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBGTKMM2EXT_DLL_IMPORT - #define LIBGTKMM2EXT_DLL_EXPORT - #define LIBGTKMM2EXT_DLL_LOCAL - #endif + #define LIBGTKMM2EXT_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBGTKMM2EXT_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBGTKMM2EXT_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBGTKMM2EXT_DLL // libgtkmm2ext is a DLL -#ifdef LIBGTKMM2EXT_DLL_EXPORTS // defined if we are building the libgtkmm2ext DLL (instead of using it) - #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_EXPORT +#ifdef LIBGTKMM2EXT_STATIC // libgtkmm2ext is a DLL + #define LIBGTKMM2EXT_API + #define LIBGTKMM2EXT_LOCAL #else - #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_IMPORT -#endif -#define LIBGTKMM2EXT_LOCAL LIBGTKMM2EXT_DLL_LOCAL -#else /* static lib, not DLL */ -#define LIBGTKMM2EXT_API -#define LIBGTKMM2EXT_LOCAL + #ifdef LIBGTKMM2EXT_DLL_EXPORTS // defined if we are building the libgtkmm2ext DLL (instead of using it) + #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_EXPORT + #else + #define LIBGTKMM2EXT_API LIBGTKMM2EXT_DLL_IMPORT + #endif + #define LIBGTKMM2EXT_LOCAL LIBGTKMM2EXT_DLL_LOCAL #endif #endif /* __libgtkmm2ext_visibility_h__ */ diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index 955b133d33..c87e1aa1d0 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -87,9 +87,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=gtkmm2ext_sources) # defines for this library - obj.defines = [ 'LIBGTKMM2EXT_DLL=1', 'LIBGTKMM2EXT_DLL_EXPORTS=1' ] - # internal shared libs that we use - obj.defines += [ 'LIBPBD_DLL=1' ] + obj.defines = [ 'LIBGTKMM2EXT_DLL_EXPORTS=1' ] obj.cxxflags = [ '-fvisibility=hidden' ] obj.cflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/midi++2/midi++/libmidi_visibility.h b/libs/midi++2/midi++/libmidi_visibility.h index 62eebfe8e2..51b061bdd8 100644 --- a/libs/midi++2/midi++/libmidi_visibility.h +++ b/libs/midi++2/midi++/libmidi_visibility.h @@ -30,27 +30,21 @@ #define LIBMIDIPP_DLL_EXPORT __declspec(dllexport) #define LIBMIDIPP_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBMIDIPP_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBMIDIPP_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBMIDIPP_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBMIDIPP_DLL_IMPORT - #define LIBMIDIPP_DLL_EXPORT - #define LIBMIDIPP_DLL_LOCAL - #endif + #define LIBMIDIPP_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBMIDIPP_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBMIDIPP_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBMIDIPP_DLL // libmidi is a DLL -#ifdef LIBMIDIPP_DLL_EXPORTS // defined if we are building the libmidi DLL (instead of using it) - #define LIBMIDIPP_API LIBMIDIPP_DLL_EXPORT +#ifdef LIBMIDIPP_STATIC // libmidi is not a DLL + #define LIBMIDIPP_API + #define LIBMIDIPP_LOCAL #else - #define LIBMIDIPP_API LIBMIDIPP_DLL_IMPORT -#endif -#define LIBMIDIPP_LOCAL LIBMIDIPP_DLL_LOCAL -#else /* static lib, not DLL */ -#define LIBMIDIPP_API -#define LIBMIDIPP_LOCAL + #ifdef LIBMIDIPP_DLL_EXPORTS // defined if we are building the libmidi DLL (instead of using it) + #define LIBMIDIPP_API LIBMIDIPP_DLL_EXPORT + #else + #define LIBMIDIPP_API LIBMIDIPP_DLL_IMPORT + #endif + #define LIBMIDIPP_LOCAL LIBMIDIPP_DLL_LOCAL #endif #endif /* __libmidi_libmidi_visibility_h__ */ diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index 39a4411dc0..b500bcaa4e 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -62,8 +62,7 @@ def build(bld): # Library if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources) - obj.defines = [ 'LIBMIDIPP_DLL=1', 'LIBMIDIPP_DLL_EXPORTS=1' ] - obj.defines += [ 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] + obj.defines = [ 'LIBMIDIPP_DLL_EXPORTS=1' ] obj.cxxflags = [ '-fvisibility=hidden' ] obj.cflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/panners/1in2out/wscript b/libs/panners/1in2out/wscript index ad9c5a6b4c..465b2da7a5 100644 --- a/libs/panners/1in2out/wscript +++ b/libs/panners/1in2out/wscript @@ -23,8 +23,6 @@ def build(bld): obj.source = [ 'panner_1in2out.cc' ] obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="libardour_pan1in2out"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.'] obj.name = 'libardour_pan1in2out' obj.target = 'pan1in2out' diff --git a/libs/panners/2in2out/wscript b/libs/panners/2in2out/wscript index 2d83205262..4d144b1934 100644 --- a/libs/panners/2in2out/wscript +++ b/libs/panners/2in2out/wscript @@ -23,8 +23,6 @@ def build(bld): obj.source = [ 'panner_2in2out.cc' ] obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="libardour_pan2in2out"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.'] obj.name = 'libardour_pan2in2out' obj.target = 'pan2in2out' diff --git a/libs/panners/vbap/wscript b/libs/panners/vbap/wscript index 4113aba53c..bc18def5e6 100644 --- a/libs/panners/vbap/wscript +++ b/libs/panners/vbap/wscript @@ -23,8 +23,6 @@ def build(bld): obj.source = [ 'vbap_speakers.cc', 'vbap.cc' ] obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="libardour_panvbap"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL_=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.'] obj.name = 'libardour_panvbap' obj.target = 'panvbap' diff --git a/libs/pbd/pbd/libpbd_visibility.h b/libs/pbd/pbd/libpbd_visibility.h index e2c6235f0b..84a64c351a 100644 --- a/libs/pbd/pbd/libpbd_visibility.h +++ b/libs/pbd/pbd/libpbd_visibility.h @@ -30,27 +30,21 @@ #define LIBPBD_DLL_EXPORT __declspec(dllexport) #define LIBPBD_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBPBD_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBPBD_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBPBD_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBPBD_DLL_IMPORT - #define LIBPBD_DLL_EXPORT - #define LIBPBD_DLL_LOCAL - #endif + #define LIBPBD_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBPBD_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBPBD_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBPBD_DLL // libpbd is a DLL -#ifdef LIBPBD_DLL_EXPORTS // defined if we are building the libpbd DLL (instead of using it) - #define LIBPBD_API LIBPBD_DLL_EXPORT +#ifdef LIBPBD_STATIC // libpbd is a DLL + #define LIBPBD_API + #define LIBPBD_LOCAL #else + #ifdef LIBPBD_DLL_EXPORTS // defined if we are building the libpbd DLL (instead of using it) + #define LIBPBD_API LIBPBD_DLL_EXPORT + #else #define LIBPBD_API LIBPBD_DLL_IMPORT -#endif -#define LIBPBD_LOCAL LIBPBD_DLL_LOCAL -#else /* static lib, not DLL */ -#define LIBPBD_API -#define LIBPBD_LOCAL + #endif + #define LIBPBD_LOCAL LIBPBD_DLL_LOCAL #endif #endif /* __libpbd_libpbd_visibility_h__ */ diff --git a/libs/pbd/wscript b/libs/pbd/wscript index d56de95c7c..09af0f614b 100644 --- a/libs/pbd/wscript +++ b/libs/pbd/wscript @@ -114,9 +114,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): print('BUILD SHARED LIB') obj = bld.shlib(features = 'cxx cxxshlib', source=libpbd_sources) - obj.defines = [ 'LIBPBD_DLL=1', - 'LIBPBD_DLL_EXPORTS=1' - ] + obj.defines = [ 'LIBPBD_DLL_EXPORTS=1' ] obj.cxxflags = [ '-fvisibility=hidden' ] obj.cflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/surfaces/control_protocol/control_protocol/visibility.h b/libs/surfaces/control_protocol/control_protocol/visibility.h index 40c83b8580..418fb6d2b3 100644 --- a/libs/surfaces/control_protocol/control_protocol/visibility.h +++ b/libs/surfaces/control_protocol/control_protocol/visibility.h @@ -30,27 +30,21 @@ #define LIBCONTROLCP_DLL_EXPORT __declspec(dllexport) #define LIBCONTROLCP_DLL_LOCAL #else - #if __GNUC__ >= 4 - #define LIBCONTROLCP_DLL_IMPORT __attribute__ ((visibility ("default"))) - #define LIBCONTROLCP_DLL_EXPORT __attribute__ ((visibility ("default"))) - #define LIBCONTROLCP_DLL_LOCAL __attribute__ ((visibility ("hidden"))) - #else - #define LIBCONTROLCP_DLL_IMPORT - #define LIBCONTROLCP_DLL_EXPORT - #define LIBCONTROLCP_DLL_LOCAL - #endif + #define LIBCONTROLCP_DLL_IMPORT __attribute__ ((visibility ("default"))) + #define LIBCONTROLCP_DLL_EXPORT __attribute__ ((visibility ("default"))) + #define LIBCONTROLCP_DLL_LOCAL __attribute__ ((visibility ("hidden"))) #endif -#ifdef LIBCONTROLCP_DLL // libcontrolcp is a DLL -#ifdef LIBCONTROLCP_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it) - #define LIBCONTROLCP_API LIBCONTROLCP_DLL_EXPORT +#ifdef LIBCONTROLCP_STATIC // libcontrolcp is not a DLL + #define LIBCONTROLCP_API + #define LIBCONTROLCP_LOCAL #else + #ifdef LIBCONTROLCP_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it) + #define LIBCONTROLCP_API LIBCONTROLCP_DLL_EXPORT + #else #define LIBCONTROLCP_API LIBCONTROLCP_DLL_IMPORT -#endif -#define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL -#else /* static lib, not DLL */ -#define LIBCONTROLCP_API -#define LIBCONTROLCP_LOCAL + #endif + #define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL #endif #endif /* __libcontrolcp_visibility_h__ */ diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index a597ca9e2a..7c53bbfb17 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -28,9 +28,7 @@ def build(bld): if bld.is_defined ('INTERNAL_SHARED_LIBS'): obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=controlcp_sources) # defines for this library - obj.defines = [ 'LIBCONTROLCP_DLL=1', 'LIBCONTROLCP_DLL_EXPORTS=1' ] - # internal shared libs that we use - obj.defines += [ 'LIBPBD_DLL=1', 'LIBARDOUR_DLL=1', 'LIBEVORAL_DLL=1' ] + obj.defines = [ 'LIBCONTROLCP_DLL_EXPORTS=1' ] obj.cxxflags = [ '-fvisibility=hidden' ] obj.cflags = [ '-fvisibility=hidden' ] else: diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript index aa7d119895..ac8341c64d 100644 --- a/libs/surfaces/frontier/wscript +++ b/libs/surfaces/frontier/wscript @@ -35,8 +35,6 @@ def build(bld): ''' obj.export_includes = ['./generic_midi'] obj.defines = [ 'PACKAGE="ardour_frontier"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1' ] obj.includes = ['.', './generic_midi'] obj.name = 'libgeneric_midi' obj.target = 'generic_midi' diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript index cdc68529ac..186f270463 100644 --- a/libs/surfaces/generic_midi/wscript +++ b/libs/surfaces/generic_midi/wscript @@ -31,8 +31,6 @@ def build(bld): ''' obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="ardour_genericmidi"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.', './generic_midi'] obj.name = 'libardour_generic_midi' obj.target = 'ardour_generic_midi' diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript index d76a26f651..beba402fa1 100644 --- a/libs/surfaces/mackie/wscript +++ b/libs/surfaces/mackie/wscript @@ -43,8 +43,6 @@ def build(bld): ''' obj.export_includes = ['./mackie'] obj.defines = [ 'PACKAGE="ardour_mackie"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ] # need ../libs because some GTK2 header files require stuff there obj.includes = ['.', '../libs'] obj.name = 'libardour_mcp' diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript index 88174c0faf..cd77f99871 100644 --- a/libs/surfaces/osc/wscript +++ b/libs/surfaces/osc/wscript @@ -28,8 +28,6 @@ def build(bld): ''' obj.export_includes = ['.'] obj.defines = [ 'PACKAGE="ardour_osc"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.', './osc'] obj.name = 'libardour_osc' obj.target = 'ardour_osc' diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript index 7d80295fba..dfc10f5525 100644 --- a/libs/surfaces/tranzport/wscript +++ b/libs/surfaces/tranzport/wscript @@ -40,8 +40,6 @@ def build(bld): ''' obj.export_includes = ['./tranzport'] obj.defines = [ 'PACKAGE="ardour_tranzport"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1' ] obj.includes = ['.', './tranzport'] obj.name = 'libardour_tranzport' obj.target = 'ardour_tranzport' diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript index 623aa960db..f3c36275c8 100644 --- a/libs/surfaces/wiimote/wscript +++ b/libs/surfaces/wiimote/wscript @@ -26,8 +26,6 @@ def build(bld): ''' obj.export_includes = ['./wiimote'] obj.defines = [ 'PACKAGE="ardour_wiimote"' ] - if bld.is_defined ('INTERNAL_SHARED_LIBS'): - obj.defines += [ 'LIBARDOUR_DLL=1', 'LIBCONTROLCP_DLL=1', 'LIBPBD_DLL=1', 'LIBGTKMM2EXT_DLL=1', 'LIBEVORAL_DLL=1' ] obj.includes = ['.', '../libs'] obj.name = 'libardour_wiimote' obj.target = 'ardour_wiimote' -- cgit v1.2.3 From 3a885d6177c280f8cc225a309c4a961742915a0a Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Thu, 5 Dec 2013 21:11:18 +1000 Subject: Only use __declspec(dllimport/dllexport) for MSVC compiler Use the gcc visibility attributes when building with the MinGW compiler(gcc). GCC also supports the __declspec syntax but it will not compile at the moment until the issues(which may not even be exactly the same issues as with MSVC) are resolved. --- libs/ardour/ardour/libardour_visibility.h | 7 +------ libs/audiographer/audiographer/visibility.h | 7 +------ libs/evoral/evoral/visibility.h | 7 +------ libs/gtkmm2ext/gtkmm2ext/visibility.h | 7 +------ libs/midi++2/midi++/libmidi_visibility.h | 7 +------ libs/pbd/pbd/libpbd_visibility.h | 7 +------ libs/surfaces/control_protocol/control_protocol/visibility.h | 7 +------ 7 files changed, 7 insertions(+), 42 deletions(-) (limited to 'libs/surfaces') diff --git a/libs/ardour/ardour/libardour_visibility.h b/libs/ardour/ardour/libardour_visibility.h index a41afca14d..917307732c 100644 --- a/libs/ardour/ardour/libardour_visibility.h +++ b/libs/ardour/ardour/libardour_visibility.h @@ -20,12 +20,7 @@ #ifndef __libardour_libardour_visibility_h__ #define __libardour_libardour_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * ardour source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBARDOUR_DLL_IMPORT __declspec(dllimport) #define LIBARDOUR_DLL_EXPORT __declspec(dllexport) #define LIBARDOUR_DLL_LOCAL diff --git a/libs/audiographer/audiographer/visibility.h b/libs/audiographer/audiographer/visibility.h index 72ce50bd25..31a7511f8b 100644 --- a/libs/audiographer/audiographer/visibility.h +++ b/libs/audiographer/audiographer/visibility.h @@ -20,12 +20,7 @@ #ifndef __libaudiographer_visibility_h__ #define __libaudiographer_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * audiographer source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBAUDIOGRAPHER_DLL_IMPORT __declspec(dllimport) #define LIBAUDIOGRAPHER_DLL_EXPORT __declspec(dllexport) #define LIBAUDIOGRAPHER_DLL_LOCAL diff --git a/libs/evoral/evoral/visibility.h b/libs/evoral/evoral/visibility.h index 17c0b7730b..fc6d23a401 100644 --- a/libs/evoral/evoral/visibility.h +++ b/libs/evoral/evoral/visibility.h @@ -20,12 +20,7 @@ #ifndef __libevoral_visibility_h__ #define __libevoral_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * evoral source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBEVORAL_DLL_IMPORT __declspec(dllimport) #define LIBEVORAL_DLL_EXPORT __declspec(dllexport) #define LIBEVORAL_DLL_LOCAL diff --git a/libs/gtkmm2ext/gtkmm2ext/visibility.h b/libs/gtkmm2ext/gtkmm2ext/visibility.h index 5a5fce3e8c..902e94d779 100644 --- a/libs/gtkmm2ext/gtkmm2ext/visibility.h +++ b/libs/gtkmm2ext/gtkmm2ext/visibility.h @@ -20,12 +20,7 @@ #ifndef __libgtkmm2ext_visibility_h__ #define __libgtkmm2ext_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * gtkmm2ext source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBGTKMM2EXT_DLL_IMPORT __declspec(dllimport) #define LIBGTKMM2EXT_DLL_EXPORT __declspec(dllexport) #define LIBGTKMM2EXT_DLL_LOCAL diff --git a/libs/midi++2/midi++/libmidi_visibility.h b/libs/midi++2/midi++/libmidi_visibility.h index 51b061bdd8..17b57045cf 100644 --- a/libs/midi++2/midi++/libmidi_visibility.h +++ b/libs/midi++2/midi++/libmidi_visibility.h @@ -20,12 +20,7 @@ #ifndef __libmidi_libmidi_visibility_h__ #define __libmidi_libmidi_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * midi source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBMIDIPP_DLL_IMPORT __declspec(dllimport) #define LIBMIDIPP_DLL_EXPORT __declspec(dllexport) #define LIBMIDIPP_DLL_LOCAL diff --git a/libs/pbd/pbd/libpbd_visibility.h b/libs/pbd/pbd/libpbd_visibility.h index 84a64c351a..0fcebd554f 100644 --- a/libs/pbd/pbd/libpbd_visibility.h +++ b/libs/pbd/pbd/libpbd_visibility.h @@ -20,12 +20,7 @@ #ifndef __libpbd_libpbd_visibility_h__ #define __libpbd_libpbd_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * ardour source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBPBD_DLL_IMPORT __declspec(dllimport) #define LIBPBD_DLL_EXPORT __declspec(dllexport) #define LIBPBD_DLL_LOCAL diff --git a/libs/surfaces/control_protocol/control_protocol/visibility.h b/libs/surfaces/control_protocol/control_protocol/visibility.h index 418fb6d2b3..88dcff0940 100644 --- a/libs/surfaces/control_protocol/control_protocol/visibility.h +++ b/libs/surfaces/control_protocol/control_protocol/visibility.h @@ -20,12 +20,7 @@ #ifndef __libcontrolcp_visibility_h__ #define __libcontrolcp_visibility_h__ -/* _WIN32 is defined by most compilers targetting Windows, but within the - * controlcp source tree, we also define COMPILER_MSVC or COMPILER_MINGW depending - * on how a Windows build is built. - */ - -#if defined _WIN32 || defined __CYGWIN__ || defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +#if defined(COMPILER_MSVC) #define LIBCONTROLCP_DLL_IMPORT __declspec(dllimport) #define LIBCONTROLCP_DLL_EXPORT __declspec(dllexport) #define LIBCONTROLCP_DLL_LOCAL -- cgit v1.2.3