summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-01-25 13:57:28 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-01-25 13:57:28 -0500
commit79b7fb82f3a9f3e6426c96cea0d06269fbb862fa (patch)
tree0f519bfa011515ea5a874426518beaa8bace57e7 /libs/surfaces
parent7000afdc66c9e0ae8dcf9ec080517dabba1e7f34 (diff)
try to get export/visibility and build conditionals right for surfaces/, once more
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/control_protocol/control_protocol/visibility.h28
-rw-r--r--libs/surfaces/frontier/wscript3
-rw-r--r--libs/surfaces/generic_midi/interface.cc2
-rw-r--r--libs/surfaces/mackie/interface.cc2
-rw-r--r--libs/surfaces/mackie/wscript8
-rw-r--r--libs/surfaces/osc/interface.cc2
-rw-r--r--libs/surfaces/tranzport/wscript4
-rw-r--r--libs/surfaces/wiimote/interface.cc2
-rw-r--r--libs/surfaces/wiimote/wscript4
-rw-r--r--libs/surfaces/wscript16
10 files changed, 43 insertions, 28 deletions
diff --git a/libs/surfaces/control_protocol/control_protocol/visibility.h b/libs/surfaces/control_protocol/control_protocol/visibility.h
index 88dcff0940..62e3b02913 100644
--- a/libs/surfaces/control_protocol/control_protocol/visibility.h
+++ b/libs/surfaces/control_protocol/control_protocol/visibility.h
@@ -30,16 +30,26 @@
#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)
+#ifdef LIBCONTROLCP_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it)
#define LIBCONTROLCP_API LIBCONTROLCP_DLL_EXPORT
- #else
+#else
#define LIBCONTROLCP_API LIBCONTROLCP_DLL_IMPORT
- #endif
- #define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL
-#endif
+#endif
+#define LIBCONTROLCP_LOCAL LIBCONTROLCP_DLL_LOCAL
+
+/* These should be used by surfaces/control interfaces. They use (probably)
+ * libcontrolcp but they are not part of it. The idea here is to avoid
+ * having to define per-surface macros for each and every surface. Instead,
+ * every surface defines ARDOURSURFACE_DLL_EXPORTS during building and
+ * uses ARDOURSURFACE_API in its declarations.
+ */
+
+#ifdef ARDOURSURFACE_DLL_EXPORTS // defined if we are building the libcontrolcp DLL (instead of using it)
+ #define ARDOURSURFACE_API LIBCONTROLCP_DLL_EXPORT
+#else
+ #define ARDOURSURFACE_API LIBCONTROLCP_DLL_IMPORT
+#endif
+#define ARDOURSURFACE_LOCAL LIBCONTROLCP_DLL_LOCAL
+
#endif /* __libcontrolcp_visibility_h__ */
diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript
index ac8341c64d..4fcbe6fde3 100644
--- a/libs/surfaces/frontier/wscript
+++ b/libs/surfaces/frontier/wscript
@@ -34,7 +34,8 @@ def build(bld):
midicontrollable.cc
'''
obj.export_includes = ['./generic_midi']
- obj.defines = [ 'PACKAGE="ardour_frontier"' ]
+ obj.defines = [ 'PACKAGE="ardour_frontier"' ]
+ obj.defines += [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.includes = ['.', './generic_midi']
obj.name = 'libgeneric_midi'
obj.target = 'generic_midi'
diff --git a/libs/surfaces/generic_midi/interface.cc b/libs/surfaces/generic_midi/interface.cc
index 0b75a720cc..5cd080f2f5 100644
--- a/libs/surfaces/generic_midi/interface.cc
+++ b/libs/surfaces/generic_midi/interface.cc
@@ -68,5 +68,5 @@ static ControlProtocolDescriptor generic_midi_descriptor = {
/*destroy : */ delete_generic_midi_protocol
};
-extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &generic_midi_descriptor; }
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &generic_midi_descriptor; }
diff --git a/libs/surfaces/mackie/interface.cc b/libs/surfaces/mackie/interface.cc
index 35216da263..abef84817d 100644
--- a/libs/surfaces/mackie/interface.cc
+++ b/libs/surfaces/mackie/interface.cc
@@ -90,4 +90,4 @@ static ControlProtocolDescriptor mackie_descriptor = {
};
-extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &mackie_descriptor; }
diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript
index 2dc546a5d7..c1e63e2894 100644
--- a/libs/surfaces/mackie/wscript
+++ b/libs/surfaces/mackie/wscript
@@ -42,12 +42,10 @@ def build(bld):
types.cc
'''
obj.export_includes = ['./mackie']
- obj.defines = [ 'PACKAGE="ardour_mackie"' ]
- # need ../libs because some GTK2 header files require stuff there
- obj.includes = ['.', '../libs']
+ obj.defines = [ 'PACKAGE="ardour_mackie"' ]
+ obj.defines += [ 'ARDOURSURFACE_DLL_EXPORTS' ]
+ obj.includes = [ '.' ]
obj.name = 'libardour_mcp'
- obj.defines = [ 'LIBCONTROLCP_EXPORTS' ]
- obj.defines += [ 'PACKAGE="libardour_mcp"' ]
obj.target = 'ardour_mcp'
obj.uselib = 'GTKMM'
obj.use = 'libardour libardour_cp libgtkmm2ext'
diff --git a/libs/surfaces/osc/interface.cc b/libs/surfaces/osc/interface.cc
index 7c09828f46..f20d898418 100644
--- a/libs/surfaces/osc/interface.cc
+++ b/libs/surfaces/osc/interface.cc
@@ -57,5 +57,5 @@ static ControlProtocolDescriptor osc_descriptor = {
destroy : delete_osc_protocol
};
-extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &osc_descriptor; }
diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript
index 05fd7cf5d6..83c39f1d11 100644
--- a/libs/surfaces/tranzport/wscript
+++ b/libs/surfaces/tranzport/wscript
@@ -39,10 +39,10 @@ def build(bld):
wheel_modes.cc
'''
obj.export_includes = ['./tranzport']
- obj.defines = [ 'PACKAGE="ardour_tranzport"' ]
+ obj.defines = [ 'PACKAGE="ardour_tranzport"' ]
+ obj.defines += [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.includes = ['.', './tranzport']
obj.name = 'libardour_tranzport'
- obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.target = 'ardour_tranzport'
obj.use = 'libardour libardour_cp'
obj.vnum = LIBARDOUR_TRANZPORT_LIB_VERSION
diff --git a/libs/surfaces/wiimote/interface.cc b/libs/surfaces/wiimote/interface.cc
index 8695facb8d..9a704e445e 100644
--- a/libs/surfaces/wiimote/interface.cc
+++ b/libs/surfaces/wiimote/interface.cc
@@ -61,5 +61,5 @@ static ControlProtocolDescriptor wiimote_descriptor = {
destroy : delete_wiimote_protocol
};
-extern "C" LIBCONTROLCP_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
+extern "C" ARDOURSURFACE_API ControlProtocolDescriptor* protocol_descriptor () { return &wiimote_descriptor; }
diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript
index e63713c855..8513a5be51 100644
--- a/libs/surfaces/wiimote/wscript
+++ b/libs/surfaces/wiimote/wscript
@@ -25,10 +25,10 @@ def build(bld):
interface.cc
'''
obj.export_includes = ['./wiimote']
- obj.defines = [ 'PACKAGE="ardour_wiimote"' ]
+ obj.defines = [ 'PACKAGE="ardour_wiimote"' ]
+ obj.defines += [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.includes = ['.', '../libs']
obj.name = 'libardour_wiimote'
- obj.defines = [ 'ARDOURSURFACE_DLL_EXPORTS' ]
obj.target = 'ardour_wiimote'
obj.uselib = 'GTKMM CWIID'
obj.use = 'libardour libardour_cp libgtkmm2ext'
diff --git a/libs/surfaces/wscript b/libs/surfaces/wscript
index abf0250ca5..71bb35d6cc 100644
--- a/libs/surfaces/wscript
+++ b/libs/surfaces/wscript
@@ -38,15 +38,13 @@ def configure(conf):
autowaf.set_recursive()
autowaf.configure(conf)
- if (conf.env['build_target'] == 'mingw'): return
-
#autowaf.check_pkg(conf, 'libusb-1.0', uselib_store='USB', mandatory=False)
#if Options.options.tranzport and conf.is_defined('HAVE_USB'):
# conf.define('BUILD_TRANZPORT', 1)
if autowaf.check_pkg (conf, 'liblo', mandatory=False, uselib_store="LO", atleast_version="0.24"):
children += [ 'osc' ]
-
+
conf.check_cc (header_name='cwiid.h', define_name='HAVE_CWIID_H',mandatory=False)
if conf.is_defined('HAVE_CWIID_H'):
conf.check_cc (header_name='bluetooth/bluetooth.h', define_name='HAVE_BLUETOOTH_H',mandatory=False)
@@ -67,8 +65,16 @@ def configure(conf):
def build(bld):
- for i in children:
- bld.recurse (i)
+ bld.recurse('control_protocol')
+ bld.recurse('generic_midi')
+ bld.recurse('mackie')
+
+ if bld.is_defined ('HAVE_LO'):
+ bld.recurse('osc')
+ if bld.is_defined('BUILD_WIIMOTE'):
+ bld.recurse('wiimote')
+ if bld.is_defined('BUILD_TRANZPORT'):
+ bld.recurse('tranzport')
def shutdown():
autowaf.shutdown()