get everything compiling with libardour built using -fvisibility=hidden
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 17 Oct 2013 16:41:28 +0000 (12:41 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 17 Oct 2013 16:41:28 +0000 (12:41 -0400)
30 files changed:
gtk2_ardour/wscript
libs/ardour/ardour/ardour.h
libs/ardour/ardour/async_midi_port.h
libs/ardour/ardour/audio_library.h
libs/ardour/ardour/audioregion.h
libs/ardour/ardour/debug.h
libs/ardour/ardour/directory_names.h
libs/ardour/ardour/filename_extensions.h
libs/ardour/ardour/filesystem_paths.h
libs/ardour/ardour/linux_vst_support.h
libs/ardour/ardour/midi_region.h
libs/ardour/ardour/operations.h
libs/ardour/ardour/playlist.h
libs/ardour/ardour/profile.h
libs/ardour/ardour/rc_configuration.h
libs/ardour/ardour/recent_sessions.h
libs/ardour/ardour/region.h
libs/ardour/ardour/revision.h
libs/ardour/ardour/route_group.h
libs/ardour/ardour/session_object.h
libs/ardour/ardour/session_state_utils.h
libs/ardour/ardour/session_utils.h
libs/ardour/ardour/template_utils.h
libs/ardour/find_session.cc
libs/ardour/wscript
libs/gtkmm2ext/wscript
libs/midi++2/wscript
libs/pbd/pbd/stateful.h
libs/pbd/wscript
waf

index ddc07fe3e7e9d3af3cb98b532293526eff0339e3..ebc28ebf8f736bb806fd590d9827f9c7b4c05a55 100644 (file)
@@ -265,7 +265,8 @@ def configure(conf):
     autowaf.build_version_files(
         path_prefix + 'version.h',
         path_prefix + 'version.cc',
-        'gtk2_ardour', conf.env['MAJOR'], conf.env['MINOR'], 0)
+        'gtk2_ardour', conf.env['MAJOR'], conf.env['MINOR'], 0,
+        '', '')
     autowaf.configure(conf)
 
     if re.search ("linux", sys.platform) != None:
index fa525ed2d82e2b26285dec059baf692ac29dfc2d..90a6272fac8e28855b982350b338f5e9a0ace8ad 100644 (file)
@@ -49,8 +49,8 @@ namespace ARDOUR {
 
        class AudioEngine;
 
-       extern PBD::Signal1<void,std::string> BootMessage;
-       extern PBD::Signal0<void> GUIIdle;
+       LIBARDOUR_API extern PBD::Signal1<void,std::string> BootMessage;
+       LIBARDOUR_API extern PBD::Signal0<void> GUIIdle;
 
        /**
         * @param with_vst true to enable VST Support
@@ -60,27 +60,27 @@ namespace ARDOUR {
         *
         * @return true if Ardour library was successfully initialized
         */
-       bool init (bool with_vst, bool try_optimization, const char* localedir);
-       void init_post_engine ();
-       void cleanup ();
-       bool no_auto_connect ();
-       void make_property_quarks ();
+       LIBARDOUR_API bool init (bool with_vst, bool try_optimization, const char* localedir);
+       LIBARDOUR_API void init_post_engine ();
+       LIBARDOUR_API void cleanup ();
+       LIBARDOUR_API bool no_auto_connect ();
+       LIBARDOUR_API void make_property_quarks ();
 
-       extern PBD::PropertyChange bounds_change;
+       LIBARDOUR_API extern PBD::PropertyChange bounds_change;
 
-       extern const char* const ardour_config_info;
+       LIBARDOUR_API extern const char* const ardour_config_info;
 
-       void find_bindings_files (std::map<std::string,std::string>&);
+       LIBARDOUR_API void find_bindings_files (std::map<std::string,std::string>&);
 
        /* these only impact bundled installations */
-       std::string translation_enable_path ();
-       bool translations_are_enabled ();
-       bool set_translations_enabled (bool);
+       LIBARDOUR_API std::string translation_enable_path ();
+       LIBARDOUR_API bool translations_are_enabled ();
+       LIBARDOUR_API bool set_translations_enabled (bool);
 
-       microseconds_t get_microseconds ();
+       LIBARDOUR_API microseconds_t get_microseconds ();
 
-       void setup_fpu ();
-       std::vector<SyncSource> get_available_sync_options();
+       LIBARDOUR_API void setup_fpu ();
+       LIBARDOUR_API std::vector<SyncSource> get_available_sync_options();
 }
 
 #endif /* __ardour_ardour_h__ */
index 76bdac04095ab5272882eb1377bdb7597e7e400b..e7eeb8ee30a15327b94bd05d854d63610eb32600 100644 (file)
 #include "midi++/parser.h"
 #include "midi++/port.h"
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/midi_port.h"
 
 namespace ARDOUR {
 
-       class AsyncMIDIPort : public ARDOUR::MidiPort, public MIDI::Port {
+class LIBARDOUR_API AsyncMIDIPort : public ARDOUR::MidiPort, public MIDI::Port {
 
   public:
         AsyncMIDIPort (std::string const &, PortFlags);
index cd9b38e9dc7202eb88bacb01e54bb4a4d95defbd..63978217209333022e3c34728d2b54168ceb2bf3 100644 (file)
@@ -45,7 +45,7 @@ class LIBARDOUR_API AudioLibrary
        std::string src;
 };
 
-extern AudioLibrary* Library;
+LIBARDOUR_API extern AudioLibrary* Library;
 
 } // ARDOUR namespace
 
index a6cd22895c97c852d334c79323d92443ab8c5dec..a35532df4348b8af1984b094fa4290d7757c684e 100644 (file)
@@ -238,9 +238,9 @@ class LIBARDOUR_API AudioRegion : public Region
 /* access from C objects */
 
 extern "C" {
-       int    region_read_peaks_from_c   (void *arg, uint32_t npeaks, uint32_t start, uint32_t length, intptr_t data, uint32_t n_chan, double samples_per_unit);
-       uint32_t region_length_from_c (void *arg);
-       uint32_t sourcefile_length_from_c (void *arg, double);
+       LIBARDOUR_API int    region_read_peaks_from_c   (void *arg, uint32_t npeaks, uint32_t start, uint32_t length, intptr_t data, uint32_t n_chan, double samples_per_unit);
+       LIBARDOUR_API uint32_t region_length_from_c (void *arg);
+       LIBARDOUR_API uint32_t sourcefile_length_from_c (void *arg, double);
 }
 
 #endif /* __ardour_audio_region_h__ */
index 5811f7a484355a76b1ef3833df1c05a4dde0a5cb..c26710b62095a124c3a20627b4608704d6dd2e56 100644 (file)
 
 #include <sstream>
 
+#include "ardour/libardour_visibility.h"
 #include "pbd/debug.h"
 
 namespace PBD {
        namespace DEBUG {
-               extern uint64_t MidiSourceIO;
-               extern uint64_t MidiPlaylistIO;
-               extern uint64_t MidiDiskstreamIO;
-               extern uint64_t SnapBBT;
-               extern uint64_t Configuration;
-               extern uint64_t Latency;
-               extern uint64_t Processors;
-               extern uint64_t ProcessThreads;
-               extern uint64_t Graph;
-               extern uint64_t Destruction;
-               extern uint64_t MTC;
-               extern uint64_t LTC;
-               extern uint64_t Transport;
-               extern uint64_t Slave;
-               extern uint64_t SessionEvents;
-               extern uint64_t MidiIO;
-               extern uint64_t MackieControl;
-               extern uint64_t MidiClock;
-               extern uint64_t Monitor;
-               extern uint64_t Solo;
-               extern uint64_t AudioPlayback;
-               extern uint64_t Panning;
-               extern uint64_t LV2;
-               extern uint64_t CaptureAlignment;
-               extern uint64_t PluginManager;
-               extern uint64_t AudioUnits;
-               extern uint64_t ControlProtocols;
-               extern uint64_t CycleTimers;
-               extern uint64_t MidiTrackers;
-               extern uint64_t Layering;
-               extern uint64_t TempoMath;
-               extern uint64_t TempoMap;
-               extern uint64_t OrderKeys;
-               extern uint64_t Automation;
-               extern uint64_t WiimoteControl;
-               extern uint64_t Ports;
+               LIBARDOUR_API extern uint64_t MidiSourceIO;
+               LIBARDOUR_API extern uint64_t MidiPlaylistIO;
+               LIBARDOUR_API extern uint64_t MidiDiskstreamIO;
+               LIBARDOUR_API extern uint64_t SnapBBT;
+               LIBARDOUR_API extern uint64_t Configuration;
+               LIBARDOUR_API extern uint64_t Latency;
+               LIBARDOUR_API extern uint64_t Processors;
+               LIBARDOUR_API extern uint64_t ProcessThreads;
+               LIBARDOUR_API extern uint64_t Graph;
+               LIBARDOUR_API extern uint64_t Destruction;
+               LIBARDOUR_API extern uint64_t MTC;
+               LIBARDOUR_API extern uint64_t LTC;
+               LIBARDOUR_API extern uint64_t Transport;
+               LIBARDOUR_API extern uint64_t Slave;
+               LIBARDOUR_API extern uint64_t SessionEvents;
+               LIBARDOUR_API extern uint64_t MidiIO;
+               LIBARDOUR_API extern uint64_t MackieControl;
+               LIBARDOUR_API extern uint64_t MidiClock;
+               LIBARDOUR_API extern uint64_t Monitor;
+               LIBARDOUR_API extern uint64_t Solo;
+               LIBARDOUR_API extern uint64_t AudioPlayback;
+               LIBARDOUR_API extern uint64_t Panning;
+               LIBARDOUR_API extern uint64_t LV2;
+               LIBARDOUR_API extern uint64_t CaptureAlignment;
+               LIBARDOUR_API extern uint64_t PluginManager;
+               LIBARDOUR_API extern uint64_t AudioUnits;
+               LIBARDOUR_API extern uint64_t ControlProtocols;
+               LIBARDOUR_API extern uint64_t CycleTimers;
+               LIBARDOUR_API extern uint64_t MidiTrackers;
+               LIBARDOUR_API extern uint64_t Layering;
+               LIBARDOUR_API extern uint64_t TempoMath;
+               LIBARDOUR_API extern uint64_t TempoMap;
+               LIBARDOUR_API extern uint64_t OrderKeys;
+               LIBARDOUR_API extern uint64_t Automation;
+               LIBARDOUR_API extern uint64_t WiimoteControl;
+               LIBARDOUR_API extern uint64_t Ports;
        }
 }
 
index 935cdd977bc44bdf642dbc4437195ed907adc87b..9eb2254219cf6c084d9a5a00fb1c40620fe0e8f4 100644 (file)
 #ifndef __ardour_directory_names_h__
 #define __ardour_directory_names_h__
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-extern const char* const old_sound_dir_name;
-extern const char* const sound_dir_name;
-extern const char* const midi_dir_name;
-extern const char* const midi_patch_dir_name;
-extern const char* const video_dir_name;
-extern const char* const dead_dir_name;
-extern const char* const interchange_dir_name;
-extern const char* const peak_dir_name;
-extern const char* const export_dir_name;
-extern const char* const export_formats_dir_name;
-extern const char* const templates_dir_name;
-extern const char* const route_templates_dir_name;
-extern const char* const surfaces_dir_name;
-extern const char* const user_config_dir_name;
-extern const char* const panner_dir_name;
-extern const char* const backend_dir_name;
+       LIBARDOUR_API extern const char* const old_sound_dir_name;
+       LIBARDOUR_API extern const char* const sound_dir_name;
+       LIBARDOUR_API extern const char* const midi_dir_name;
+       LIBARDOUR_API extern const char* const midi_patch_dir_name;
+       LIBARDOUR_API extern const char* const video_dir_name;
+       LIBARDOUR_API extern const char* const dead_dir_name;
+       LIBARDOUR_API extern const char* const interchange_dir_name;
+       LIBARDOUR_API extern const char* const peak_dir_name;
+       LIBARDOUR_API extern const char* const export_dir_name;
+       LIBARDOUR_API extern const char* const export_formats_dir_name;
+       LIBARDOUR_API extern const char* const templates_dir_name;
+       LIBARDOUR_API extern const char* const route_templates_dir_name;
+       LIBARDOUR_API extern const char* const surfaces_dir_name;
+       LIBARDOUR_API extern const char* const user_config_dir_name;
+       LIBARDOUR_API extern const char* const panner_dir_name;
+       LIBARDOUR_API extern const char* const backend_dir_name;
 
 };
 
index a7c9274c4aaff76984d56bbcb9d275d06a7341d8..c0725932fa7b468eafede02d0bc04e666814c2e0 100644 (file)
 #ifndef __ardour_filename_extensions_h__
 #define __ardour_filename_extensions_h__
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-extern const char* const template_suffix;
-extern const char* const statefile_suffix;
-extern const char* const pending_suffix;
-extern const char* const peakfile_suffix;
-extern const char* const backup_suffix;
-extern const char* const temp_suffix;
-extern const char* const history_suffix;
-extern const char* const export_preset_suffix;
-extern const char* const export_format_suffix;
+       LIBARDOUR_API extern const char* const template_suffix;
+       LIBARDOUR_API extern const char* const statefile_suffix;
+       LIBARDOUR_API extern const char* const pending_suffix;
+       LIBARDOUR_API extern const char* const peakfile_suffix;
+       LIBARDOUR_API extern const char* const backup_suffix;
+       LIBARDOUR_API extern const char* const temp_suffix;
+       LIBARDOUR_API extern const char* const history_suffix;
+       LIBARDOUR_API extern const char* const export_preset_suffix;
+       LIBARDOUR_API extern const char* const export_format_suffix;
 
 }
 
index cfeb633597cb2fac5c34c22d704e9d791cb3728c..b96cd051377a0f27c16c95d075e4ae82fe373f58 100644 (file)
@@ -22,6 +22,8 @@
 
 #include "pbd/search_path.h"
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
        /**
@@ -29,26 +31,26 @@ namespace ARDOUR {
         * configuration files.
         * @post user_config_directory() exists
         */
-       std::string user_config_directory ();
+       LIBARDOUR_API std::string user_config_directory ();
 
        /**
         * @return the path to the directory that contains the system wide ardour
         * modules.
         */
-       std::string ardour_dll_directory ();
+       LIBARDOUR_API std::string ardour_dll_directory ();
 
        /**
         * @return the search path to be used when looking for per-system
         * configuration files. This may include user configuration files.
         */
-       PBD::SearchPath ardour_config_search_path ();
+       LIBARDOUR_API PBD::SearchPath ardour_config_search_path ();
 
        /**
         * @return the search path to be used when looking for data files
         * that could be shared by systems (h/w and configuration independent
         * files, such as icons, XML files, etc)
         */
-       PBD::SearchPath ardour_data_search_path ();
+       LIBARDOUR_API PBD::SearchPath ardour_data_search_path ();
 
 } // namespace ARDOUR
 
index c99c4a8cb32b6f15ec35e29fe743021dc8755b2d..cb18a0b1d40c3faf4d775bbb9610ef4fc39ee413 100644 (file)
 #include <pthread.h>
 #include <stdio.h>
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/vst_types.h"
 
 /******************************************************************************************/
 /*VSTFX - an engine to manage native linux VST plugins - derived from FST for Windows VSTs*/
 /******************************************************************************************/
  
-extern void (*vstfx_error_callback)(const char *msg);
+LIBARDOUR_API extern void (*vstfx_error_callback)(const char *msg);
 
-void vstfx_set_error_function (void (*func)(const char *));
+LIBARDOUR_API void vstfx_set_error_function (void (*func)(const char *));
 
-void  vstfx_error (const char *fmt, ...);
+LIBARDOUR_API void  vstfx_error (const char *fmt, ...);
 
 /*API to vstfx*/
 
-extern int         vstfx_launch_editor (VSTState *);
-extern int          vstfx_init (void *);
-extern void         vstfx_exit ();
-extern VSTHandle *  vstfx_load (const char*);
-extern int          vstfx_unload (VSTHandle *);
-extern VSTState *   vstfx_instantiate (VSTHandle *, audioMasterCallback, void *);
-extern void         vstfx_close (VSTState*);
+LIBARDOUR_API extern int         vstfx_launch_editor (VSTState *);
+LIBARDOUR_API extern int          vstfx_init (void *);
+LIBARDOUR_API extern void         vstfx_exit ();
+LIBARDOUR_API extern VSTHandle *  vstfx_load (const char*);
+LIBARDOUR_API extern int          vstfx_unload (VSTHandle *);
 
-extern int          vstfx_create_editor (VSTState *);
-extern int          vstfx_run_editor (VSTState *);
-extern void         vstfx_destroy_editor (VSTState *);
+LIBARDOUR_API extern VSTState *   vstfx_instantiate (VSTHandle *, audioMasterCallback, void *);
+LIBARDOUR_API extern void         vstfx_close (VSTState*);
 
-extern VSTInfo *    vstfx_get_info (char *);
-extern void         vstfx_free_info (VSTInfo *);
-extern void         vstfx_event_loop_remove_plugin (VSTState *);
-extern int          vstfx_call_dispatcher (VSTState *, int, int, int, void *, float);
+LIBARDOUR_API extern int          vstfx_create_editor (VSTState *);
+LIBARDOUR_API extern int          vstfx_run_editor (VSTState *);
+LIBARDOUR_API extern void         vstfx_destroy_editor (VSTState *);
+
+LIBARDOUR_API extern VSTInfo *    vstfx_get_info (char *);
+LIBARDOUR_API extern void         vstfx_free_info (VSTInfo *);
+LIBARDOUR_API extern void         vstfx_event_loop_remove_plugin (VSTState *);
+LIBARDOUR_API extern int          vstfx_call_dispatcher (VSTState *, int, int, int, void *, float);
 
 /** Load a plugin state from a file.**/
 
-extern int vstfx_load_state (VSTState* vstfx, char * filename);
+LIBARDOUR_API extern int vstfx_load_state (VSTState* vstfx, char * filename);
 
 /** Save a plugin state to a file.**/
 
-extern bool vstfx_save_state (VSTState* vstfx, char * filename);
+LIBARDOUR_API extern bool vstfx_save_state (VSTState* vstfx, char * filename);
 
 
 #endif /* __vstfx_h__ */
index 519643892603f811ab4a1aa30eae9ed9e4d1059d..b326bb30d87a0f8df2794240535de47b3ee45497 100644 (file)
@@ -34,9 +34,9 @@ namespace ARDOUR {
                   property, but it allows us to signal changes to the
                   MidiModel used by the MidiRegion
                */
-               extern PBD::PropertyDescriptor<void*> midi_data;
-               extern PBD::PropertyDescriptor<Evoral::MusicalTime> start_beats;
-               extern PBD::PropertyDescriptor<Evoral::MusicalTime> length_beats;
+               LIBARDOUR_API extern PBD::PropertyDescriptor<void*> midi_data;
+               LIBARDOUR_API extern PBD::PropertyDescriptor<Evoral::MusicalTime> start_beats;
+               LIBARDOUR_API extern PBD::PropertyDescriptor<Evoral::MusicalTime> length_beats;
        }
 }
 
index dd6329d7b993c56e4d8df37be62f747c5fb7d65e..d113c621c2cbadf09181f53390296d4c2fdf6f52 100644 (file)
@@ -17,6 +17,8 @@
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "ardour/libardour_visibility.h"
+
 /** These are GQuarks for a subset of UI operations.  We use these
  *  so that the undo system can be queried to find out what operations
  *  are currently in progress, by calling Session::current_operations().
 
 namespace Operations {
 
-       extern GQuark capture;
-       extern GQuark paste;
-       extern GQuark duplicate_region;
-       extern GQuark insert_file;
-       extern GQuark insert_region;
-       extern GQuark drag_region_brush;
-       extern GQuark region_drag;
-       extern GQuark selection_grab;
-       extern GQuark region_fill;
-       extern GQuark fill_selection;
-       extern GQuark create_region;
-       extern GQuark region_copy;
-       extern GQuark fixed_time_region_copy;
+       LIBARDOUR_API extern GQuark capture;
+       LIBARDOUR_API extern GQuark paste;
+       LIBARDOUR_API extern GQuark duplicate_region;
+       LIBARDOUR_API extern GQuark insert_file;
+       LIBARDOUR_API extern GQuark insert_region;
+       LIBARDOUR_API extern GQuark drag_region_brush;
+       LIBARDOUR_API extern GQuark region_drag;
+       LIBARDOUR_API extern GQuark selection_grab;
+       LIBARDOUR_API extern GQuark region_fill;
+       LIBARDOUR_API extern GQuark fill_selection;
+       LIBARDOUR_API extern GQuark create_region;
+       LIBARDOUR_API extern GQuark region_copy;
+       LIBARDOUR_API extern GQuark fixed_time_region_copy;
 
 };
 
index 95c9e739c6724a078463bc3ccd203a0c80b4e6ef..08ecd10853f959b20fc28e4d01925d352835e4ed 100644 (file)
@@ -55,7 +55,7 @@ namespace Properties {
        /* fake the type, since regions are handled by SequenceProperty which doesn't
           care about such things.
        */
-       extern PBD::PropertyDescriptor<bool> regions;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> regions;
 }
 
 class LIBARDOUR_API RegionListProperty : public PBD::SequenceProperty<std::list<boost::shared_ptr<Region> > >
index b315748630574f0f3bf724ed249720a01f3b3ad6..9346138e002c0eac45f95a00971a69a0413a52f8 100644 (file)
@@ -53,7 +53,7 @@ private:
 
 };
 
-extern RuntimeProfile* Profile;
+LIBARDOUR_API extern RuntimeProfile* Profile;
 
 }; // namespace ARDOUR
 
index b525a8269efa0ffe40c3ca2cb6f8d956cc3c201d..d85c723ff8f3a60d4ca5abfe8b03c37a6f4062b9 100644 (file)
@@ -84,8 +84,8 @@ class LIBARDOUR_API RCConfiguration : public Configuration
 };
 
 /* XXX: rename this */
-extern RCConfiguration *Config;
-extern gain_t speed_quietning; /* see comment in configuration.cc */
+LIBARDOUR_API extern RCConfiguration *Config;
+LIBARDOUR_API extern gain_t speed_quietning; /* see comment in configuration.cc */
 
 } // namespace ARDOUR
 
index 2951496849e5187e6f36997b4f007145cfd5c557..03134da6d2be3fd97bc1efe5f2c8f4a45fa31c3f 100644 (file)
 #include <utility>
 #include <string>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
        typedef std::deque<std::pair<std::string,std::string> > RecentSessions;
 
-       int read_recent_sessions (RecentSessions& rs);
-       int store_recent_sessions (std::string name, std::string path);
-       int write_recent_sessions (RecentSessions& rs);
-       int remove_recent_sessions (const std::string& path);
+       LIBARDOUR_API int read_recent_sessions (RecentSessions& rs);
+       LIBARDOUR_API int store_recent_sessions (std::string name, std::string path);
+       LIBARDOUR_API int write_recent_sessions (RecentSessions& rs);
+       LIBARDOUR_API int remove_recent_sessions (const std::string& path);
 }; // namespace ARDOUR
 
 #endif // __ardour_recent_sessions_h__
index fac89bb4ff1d230358fa759360038eb7eaa26ced..4096d667051315b49eb39b3c0802373ef7fc7cb7 100644 (file)
@@ -41,31 +41,31 @@ class XMLNode;
 namespace ARDOUR {
 
 namespace Properties {
-       extern PBD::PropertyDescriptor<bool>              muted;
-       extern PBD::PropertyDescriptor<bool>              opaque;
-       extern PBD::PropertyDescriptor<bool>              locked;
-       extern PBD::PropertyDescriptor<bool>              video_locked;
-       extern PBD::PropertyDescriptor<bool>              automatic;
-       extern PBD::PropertyDescriptor<bool>              whole_file;
-       extern PBD::PropertyDescriptor<bool>              import;
-       extern PBD::PropertyDescriptor<bool>              external;
-       extern PBD::PropertyDescriptor<bool>              sync_marked;
-       extern PBD::PropertyDescriptor<bool>              left_of_split;
-       extern PBD::PropertyDescriptor<bool>              right_of_split;
-       extern PBD::PropertyDescriptor<bool>              hidden;
-       extern PBD::PropertyDescriptor<bool>              position_locked;
-       extern PBD::PropertyDescriptor<bool>              valid_transients;
-       extern PBD::PropertyDescriptor<framepos_t>        start;
-       extern PBD::PropertyDescriptor<framecnt_t>        length;
-       extern PBD::PropertyDescriptor<framepos_t>        position;
-       extern PBD::PropertyDescriptor<framecnt_t>        sync_position;
-       extern PBD::PropertyDescriptor<layer_t>           layer;
-       extern PBD::PropertyDescriptor<framepos_t>        ancestral_start;
-       extern PBD::PropertyDescriptor<framecnt_t>        ancestral_length;
-       extern PBD::PropertyDescriptor<float>             stretch;
-       extern PBD::PropertyDescriptor<float>             shift;
-       extern PBD::PropertyDescriptor<PositionLockStyle> position_lock_style;
-       extern PBD::PropertyDescriptor<uint64_t>          layering_index;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              muted;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              opaque;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              locked;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              video_locked;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              automatic;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              whole_file;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              import;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              external;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              sync_marked;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              left_of_split;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              right_of_split;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              hidden;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              position_locked;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool>              valid_transients;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<framepos_t>        start;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<framecnt_t>        length;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<framepos_t>        position;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<framecnt_t>        sync_position;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<layer_t>           layer;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<framepos_t>        ancestral_start;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<framecnt_t>        ancestral_length;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<float>             stretch;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<float>             shift;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<PositionLockStyle> position_lock_style;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<uint64_t>          layering_index;
 };
 
 class Playlist;
index 9eeb1e2a9ad19d52e3753acafa6378e6ae6e3a75..849a96fa07737ef8d318918e47929cf5abc37f16 100644 (file)
 #ifndef __ardour_revision_h__
 #define __ardour_revision_h__
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
-       extern const char* revision;
+       LIBARDOUR_API extern const char* revision;
 }
 
 #endif
index fd4be69c6466b33c6fdf079d894ecec1c3e7806a..763430e1f1c1d6a607ed4ebf5b747fb8c245759e 100644 (file)
 namespace ARDOUR {
 
 namespace Properties {
-       extern PBD::PropertyDescriptor<bool> relative;
-       extern PBD::PropertyDescriptor<bool> active;
-       extern PBD::PropertyDescriptor<bool> gain;
-       extern PBD::PropertyDescriptor<bool> mute;
-       extern PBD::PropertyDescriptor<bool> solo;
-       extern PBD::PropertyDescriptor<bool> recenable;
-       extern PBD::PropertyDescriptor<bool> select;
-       extern PBD::PropertyDescriptor<bool> route_active;
-       extern PBD::PropertyDescriptor<bool> color;
-       extern PBD::PropertyDescriptor<bool> monitoring;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> relative;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> active;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> gain;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> mute;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> solo;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> recenable;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> select;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> route_active;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> color;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> monitoring;
        /* we use this, but its declared in region.cc */
-       extern PBD::PropertyDescriptor<bool> hidden;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<bool> hidden;
 };
 
 class Route;
index 21bb10f225efbee29b1de3aa54670cb56c5c894a..ac74f07b7700c3522e13f7597abc620487fa25d2 100644 (file)
@@ -31,7 +31,7 @@
 namespace ARDOUR {
 
 namespace Properties {
-       extern PBD::PropertyDescriptor<std::string> name;
+       LIBARDOUR_API extern PBD::PropertyDescriptor<std::string> name;
 }
 
 class Session;
index 166b738d05299b67e0006504c3cb2757ff806b6a..f35bbd07787ddfdf6ecce25fad622056dea7ec16 100644 (file)
@@ -22,6 +22,8 @@
 #include <vector>
 #include <string>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
 /**
@@ -32,7 +34,7 @@ namespace ARDOUR {
  *
  * @return true if successful, false otherwise.
  */
-bool create_backup_file (const std::string & file_path);
+LIBARDOUR_API bool create_backup_file (const std::string & file_path);
 
 /**
  * Get the absolute paths to all state files in the directory
@@ -41,8 +43,8 @@ bool create_backup_file (const std::string & file_path);
  * @param directory_path The absolute path to a directory.
  * @param result vector to contain resulting state files.
  */
-void get_state_files_in_directory (const std::string& directory_path,
-               std::vector<std::string>& result);
+LIBARDOUR_API void get_state_files_in_directory (const std::string& directory_path,
+                                                std::vector<std::string>& result);
 
 /**
  * Given a vector of paths to files, return a vector containing
@@ -52,7 +54,7 @@ void get_state_files_in_directory (const std::string& directory_path,
  * @return a vector containing a list of file names without any
  * filename extension.
  */
-std::vector<std::string> get_file_names_no_extension (const std::vector<std::string> & file_paths);
+LIBARDOUR_API std::vector<std::string> get_file_names_no_extension (const std::vector<std::string> & file_paths);
 
 } // namespace ARDOUR
 
index ab24e976b28edd40ee7dc7cbb0fc768f37285378..bd9cc92267dd094767e8b3f01428d4933b0cab3d 100644 (file)
 
 #include <string>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-int find_session (std::string str, std::string& path, std::string& snapshot, bool& isnew);
+       LIBARDOUR_API extern int find_session (std::string str, std::string& path, std::string& snapshot, bool& isnew);
 
 };
 
index e01a62bbd125fbf745843863b0c35f75bc385deb..dc56c53c445b39d4b992e2e50554d1fa6693d62b 100644 (file)
 #include <string>
 #include <vector>
 
+#include "ardour/libardour_visibility.h"
+
 namespace ARDOUR {
 
-       std::string system_template_directory ();
-       std::string system_route_template_directory ();
+       LIBARDOUR_API std::string system_template_directory ();
+       LIBARDOUR_API std::string system_route_template_directory ();
 
-       std::string user_template_directory ();
-       std::string user_route_template_directory ();
+       LIBARDOUR_API std::string user_template_directory ();
+       LIBARDOUR_API std::string user_route_template_directory ();
 
-       struct TemplateInfo {
+       struct LIBARDOUR_API TemplateInfo {
                std::string name;
                std::string path;
        };
 
-       void find_route_templates (std::vector<TemplateInfo>& template_names);
-       void find_session_templates (std::vector<TemplateInfo>& template_names);
+       LIBARDOUR_API void find_route_templates (std::vector<TemplateInfo>& template_names);
+       LIBARDOUR_API void find_session_templates (std::vector<TemplateInfo>& template_names);
 
-       std::string session_template_dir_to_file (std::string const &);
+       LIBARDOUR_API std::string session_template_dir_to_file (std::string const &);
 
 } // namespace ARDOUR
 
index f0a034d8d434301546a17608b3f9b572d9a36955..7a25b1298bf7cf7bba7d5aec4aab1d3fd7078c2b 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "ardour/filename_extensions.h"
 #include "ardour/utils.h"
+#include "ardour/session_utils.h"
 
 #include "i18n.h"
 
index 7ce462ebb5963d406dacf7e20d9d688c98d00c05..6fec6ae9d0db53a3f708a71235516b36ececb819 100644 (file)
@@ -241,7 +241,8 @@ def configure(conf):
     autowaf.build_version_files(
         path_prefix + 'ardour/version.h',
         path_prefix + 'version.cc',
-        'libardour3', conf.env['MAJOR'], conf.env['MINOR'], 0)
+        'libardour3', conf.env['MAJOR'], conf.env['MINOR'], 0,
+        'LIBARDOUR_API', 'ardour/libardour_visibility.h')
     autowaf.configure(conf)
     autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO',
                       atleast_version='0.3.2')
@@ -325,6 +326,8 @@ def build(bld):
         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.cflags       = [ '-fvisibility=hidden' ]
+        obj.cxxflags     = [ '-fvisibility=hidden' ]
     else:
         obj              = bld.stlib(features = 'c cxx cstlib cxxstlib', source=libardour_sources)
         obj.cxxflags     = [ '-fPIC' ]
index 109f0fba1c1725c28fd05993e168b5acbe99e876..7600c8a089f0fb82e726589a152e92e2d40b7973 100644 (file)
@@ -77,7 +77,7 @@ def options(opt):
 def configure(conf):
     conf.load('compiler_cxx')
     autowaf.build_version_files(path_prefix+'gtkmm2ext/version.h', path_prefix+'version.cc',
-                    'libgtkmm2ext', MAJOR, MINOR, MICRO)
+                    'libgtkmm2ext', MAJOR, MINOR, MICRO, 'LIBGTKMM2EXT_API', 'gtkmm2ext/visibility.h')
     autowaf.configure(conf)
     autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', atleast_version='2.8')
     autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.12.1')
index 849fd950fedf2221a9e1b7e2e3e04a8ffd3e1128..bc3f3313a29111811d84654690a68de3e1ef5f2a 100644 (file)
@@ -47,7 +47,7 @@ def options(opt):
 def configure(conf):
     conf.load('compiler_cxx')
     autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc',
-                    'midipp', MAJOR, MINOR, MICRO)
+                    'midipp', MAJOR, MINOR, MICRO, 'LIBMIDIPP_API', 'midi++/libmidi_visibility.h')
     autowaf.configure(conf)
     autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
     autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2')
index 7035af57c3a792516aa67f620208aa60b8f8e1d9..ab09b7aa84d79b1efd8981cbc17af7f3b3f78dd5 100644 (file)
@@ -35,11 +35,11 @@ class XMLNode;
 namespace PBD {
 
 namespace sys {
-       class LIBPBD_API path;
+       class path;
 }
 
-class LIBPBD_API PropertyList;
-class LIBPBD_API OwnedPropertyList;
+class PropertyList;
+class OwnedPropertyList;
 
 /** Base class for objects with saveable and undoable state */
 class LIBPBD_API Stateful {
index be68c40dbf361f4217413e43a349a8115a3deec5..516f848010ceed7708e1ac5fce3ec7ea274edbbd 100644 (file)
@@ -86,7 +86,7 @@ def options(opt):
 def configure(conf):
     conf.load('compiler_cxx')
     autowaf.build_version_files(path_prefix+'pbd/version.h', path_prefix+'version.cc',
-                    'libpbd', MAJOR, MINOR, MICRO)
+                    'libpbd', MAJOR, MINOR, MICRO, 'LIBPBD_API', 'pbd/libpbd_visibility.h')
     autowaf.configure(conf)
     autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
     autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0')
diff --git a/waf b/waf
index 841827b7558d573e31e5598018cb706ee155fbf0..6780539c8e2e9decf73439b2a8e294a77bfdedbf 100755 (executable)
Binary files a/waf and b/waf differ