summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/control_protocol/control_protocol/basic_ui.h11
-rw-r--r--libs/surfaces/control_protocol/control_protocol/control_protocol.h3
-rw-r--r--libs/surfaces/control_protocol/control_protocol/visibility.h56
-rw-r--r--libs/surfaces/control_protocol/wscript25
-rw-r--r--libs/surfaces/frontier/wscript6
-rw-r--r--libs/surfaces/generic_midi/wscript6
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h1
-rw-r--r--libs/surfaces/mackie/wscript4
-rw-r--r--libs/surfaces/osc/osc.h1
-rw-r--r--libs/surfaces/osc/wscript4
-rw-r--r--libs/surfaces/tranzport/wscript4
-rw-r--r--libs/surfaces/wiimote/wiimote.h1
-rw-r--r--libs/surfaces/wiimote/wscript4
13 files changed, 102 insertions, 24 deletions
diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h
index 9bbfe65979..180688e616 100644
--- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h
+++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h
@@ -32,21 +32,14 @@
#include "timecode/time.h"
-#include "ardour/visibility.h"
+#include "control_protocol/visibility.h"
namespace ARDOUR {
class Session;
class SessionEvent;
}
-#ifdef ARDOURCP_DLL_EXPORTS // defined if we are building the ARDOUR Control Protocol DLL (instead of using it)
- #define ARDOURCP_API LIBARDOUR_HELPER_DLL_EXPORT
-#else
- #define ARDOURCP_API LIBARDOUR_HELPER_DLL_IMPORT
-#endif
-#define ARDOURCP_LOCAL LIBARDOUR_HELPER_DLL_LOCAL
-
-class ARDOURCP_API 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 37322530e4..05315fc40a 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"
@@ -46,7 +47,7 @@ class Route;
class Session;
class Bundle;
-class ARDOURCP_API 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 a4331e7b76..10ec7f6c95 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,21 @@ 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', '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' ]
+ obj.defines = [ ]
+
obj.export_includes = ['.', './control_protocol' ]
- obj.cxxflags = '-DPACKAGE="ardour_cp" -fPIC'
+ obj.defines += [ 'PACKAGE="ardour_cp"' ]
obj.includes = ['.', './control_protocol']
obj.defines = [ 'ARDOURCP_DLL_EXPORTS' ]
obj.name = 'libardour_cp'
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 ffd4dd3698..f3868fadfc 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', 'LIBEVORAL_DLL=1' ]
obj.includes = ['.', './generic_midi']
obj.name = 'libardour_generic_midi'
obj.target = 'ardour_generic_midi'
@@ -39,7 +41,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/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 <pthread.h>
#include <boost/smart_ptr.hpp>
+#define ABSTRACT_UI_EXPORTS
#include "pbd/abstract_ui.h"
#include "midi++/types.h"
#include "ardour/types.h"
diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript
index e097772e7a..a7177bf0a6 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', '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/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 <glibmm/main.h>
+#define ABSTRACT_UI_EXPORTS
#include "pbd/abstract_ui.h"
#include "ardour/types.h"
diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript
index f3046658ec..102b7426bd 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', 'LIBEVORAL_DLL=1' ]
obj.includes = ['.', './osc']
obj.name = 'libardour_osc'
obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript
index 3c479e72d8..a73cec2832 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.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
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 <cwiid.h>
+#define ABSTRACT_UI_EXPORTS
#include "pbd/abstract_ui.h"
#include "ardour/types.h"
#include "control_protocol/control_protocol.h"
diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript
index f565927360..4dca1fcdb0 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', 'LIBEVORAL_DLL=1' ]
obj.includes = ['.', '../libs']
obj.name = 'libardour_wiimote'
obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]