summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-12-27 14:29:06 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2013-12-27 14:29:06 -0500
commitb0e4f81eb3a38b7236ec39f11d5211840a064d15 (patch)
tree91a917a2010fbaae80ff7fec6ab343b75bb978c2 /libs/surfaces
parent28759617c4eb0cbadbd41e6d7ea97d5de182966c (diff)
parentc16551c80820e9f71341b2f940143c8b3f44f5ce (diff)
merge exportvis branch into cairocanvas, to reduce the number of "floating" branches.
Still need to add API export/visibility macros for the canvas library.
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/control_protocol/control_protocol/basic_ui.h4
-rw-r--r--libs/surfaces/control_protocol/control_protocol/control_protocol.h3
-rw-r--r--libs/surfaces/control_protocol/control_protocol/visibility.h45
-rw-r--r--libs/surfaces/control_protocol/wscript25
-rw-r--r--libs/surfaces/frontier/wscript4
-rw-r--r--libs/surfaces/generic_midi/wscript4
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h1
-rw-r--r--libs/surfaces/mackie/wscript2
-rw-r--r--libs/surfaces/osc/osc.h1
-rw-r--r--libs/surfaces/osc/wscript2
-rw-r--r--libs/surfaces/tranzport/wscript2
-rw-r--r--libs/surfaces/wiimote/wiimote.h1
-rw-r--r--libs/surfaces/wiimote/wscript2
13 files changed, 79 insertions, 17 deletions
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 8dddfdcdb3..72726600c9 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..88dcff0940
--- /dev/null
+++ b/libs/surfaces/control_protocol/control_protocol/visibility.h
@@ -0,0 +1,45 @@
+/*
+ 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__
+
+#if defined(COMPILER_MSVC)
+ #define LIBCONTROLCP_DLL_IMPORT __declspec(dllimport)
+ #define LIBCONTROLCP_DLL_EXPORT __declspec(dllexport)
+ #define LIBCONTROLCP_DLL_LOCAL
+#else
+ #define LIBCONTROLCP_DLL_IMPORT __attribute__ ((visibility ("default")))
+ #define LIBCONTROLCP_DLL_EXPORT __attribute__ ((visibility ("default")))
+ #define LIBCONTROLCP_DLL_LOCAL __attribute__ ((visibility ("hidden")))
+#endif
+
+#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
+#endif
+
+#endif /* __libcontrolcp_visibility_h__ */
diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript
index e3092b5606..235c6c06cb 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,17 +25,23 @@ 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_EXPORTS=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.name = 'libardour_cp'
obj.target = 'ardourcp'
- obj.use = 'libardour libtimecode'
+ obj.use = 'libardour'
obj.vnum = LIBARDOUR_CP_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript
index c23b3cf3c9..ac8341c64d 100644
--- a/libs/surfaces/frontier/wscript
+++ b/libs/surfaces/frontier/wscript
@@ -34,11 +34,11 @@ def build(bld):
midicontrollable.cc
'''
obj.export_includes = ['./generic_midi']
- obj.cxxflags = '-DPACKAGE="ardour_genericmidi"'
+ obj.defines = [ 'PACKAGE="ardour_frontier"' ]
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..186f270463 100644
--- a/libs/surfaces/generic_midi/wscript
+++ b/libs/surfaces/generic_midi/wscript
@@ -30,7 +30,7 @@ def build(bld):
midiaction.cc
'''
obj.export_includes = ['.']
- obj.cxxflags = '-DPACKAGE="ardour_genericmidi"'
+ obj.defines = [ 'PACKAGE="ardour_genericmidi"' ]
obj.includes = ['.', './generic_midi']
obj.name = 'libardour_generic_midi'
obj.target = 'ardour_generic_midi'
@@ -38,7 +38,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 e1a71a2460..4ff5d53f25 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 fe276c4e82..beba402fa1 100644
--- a/libs/surfaces/mackie/wscript
+++ b/libs/surfaces/mackie/wscript
@@ -42,7 +42,7 @@ def build(bld):
types.cc
'''
obj.export_includes = ['./mackie']
- obj.cxxflags = '-DPACKAGE="ardour_mackie"'
+ obj.defines = [ 'PACKAGE="ardour_mackie"' ]
# 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 c2c12616c1..cd77f99871 100644
--- a/libs/surfaces/osc/wscript
+++ b/libs/surfaces/osc/wscript
@@ -27,7 +27,7 @@ def build(bld):
interface.cc
'''
obj.export_includes = ['.']
- obj.cxxflags = '-DPACKAGE="ardour_cp"'
+ obj.defines = [ 'PACKAGE="ardour_osc"' ]
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..dfc10f5525 100644
--- a/libs/surfaces/tranzport/wscript
+++ b/libs/surfaces/tranzport/wscript
@@ -39,7 +39,7 @@ def build(bld):
wheel_modes.cc
'''
obj.export_includes = ['./tranzport']
- obj.cxxflags = '-DPACKAGE="ardour_tranzport"'
+ obj.defines = [ 'PACKAGE="ardour_tranzport"' ]
obj.includes = ['.', './tranzport']
obj.name = 'libardour_tranzport'
obj.target = 'ardour_tranzport'
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 3a4bd109c2..f3c36275c8 100644
--- a/libs/surfaces/wiimote/wscript
+++ b/libs/surfaces/wiimote/wscript
@@ -25,7 +25,7 @@ def build(bld):
interface.cc
'''
obj.export_includes = ['./wiimote']
- obj.cxxflags = '-DPACKAGE="ardour_wiimote"'
+ obj.defines = [ 'PACKAGE="ardour_wiimote"' ]
obj.includes = ['.', '../libs']
obj.name = 'libardour_wiimote'
obj.target = 'ardour_wiimote'