make small beginning on visibility control in libardour
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 17 Oct 2013 03:30:52 +0000 (23:30 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 17 Oct 2013 03:30:52 +0000 (23:30 -0400)
libs/ardour/ardour/ardour.h
libs/ardour/ardour/libardour_visibility.h [new file with mode: 0644]
libs/ardour/ardour/session.h
libs/ardour/wscript

index 80bdf9d80e5c008babba931a1288e1890b239946..f65725d209fbe7f9d49e1340b563a074bff8969d 100644 (file)
@@ -35,6 +35,7 @@
 #include "pbd/stateful.h"
 
 #include "ardour/types.h"
+#include "ardour/libardour_visibility.h"
 
 #include <jack/jack.h>
 
diff --git a/libs/ardour/ardour/libardour_visibility.h b/libs/ardour/ardour/libardour_visibility.h
new file mode 100644 (file)
index 0000000..ae07961
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+    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 __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)
+  #define LIBARDOUR_DLL_IMPORT __declspec(dllimport)
+  #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
+    #define LIBARDOUR_DLL_IMPORT_CLASS
+    #define LIBARDOUR_DLL_EXPORT_CLASS
+  #endif
+#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 */
+#define LIBARDOUR_API
+#define LIBARDOUR_LOCAL
+#endif
+
+#endif /* __libardour_libardour_visibility_h__ */
index 9c4edfa1a1c257a79b9d13cee83f2477001a98f7..0f4e04715ac31e28922170190868cc520d632a5c 100644 (file)
@@ -140,7 +140,7 @@ class WindowsVSTPlugin;
 
 extern void setup_enum_writer ();
 
-class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager
+class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionList, public SessionEventManager
 {
   public:
        enum RecordState {
index e91d019dd54d06f5a9357722cc6c0e9478e81bbf..1adc131332a4bf2d1363ff7e5902c452b0d88056 100644 (file)
@@ -344,7 +344,8 @@ def build(bld):
         'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
         'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
         'PROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"',
-        'EVORAL_MIDI_XML=1' 
+        'EVORAL_MIDI_XML=1',
+        'LIBARDOUR_DLL_EXPORTS=1'
         ]
 
     #obj.source += ' st_stretch.cc st_pitch.cc '