diff --git a/source/Makefile.mk b/source/Makefile.mk index 960ccc1fd..889f55682 100644 --- a/source/Makefile.mk +++ b/source/Makefile.mk @@ -61,7 +61,7 @@ endif # -------------------------------------------------------------- # Common build and link flags -BASE_FLAGS = -Wall -Wextra -pipe -DREAL_BUILD +BASE_FLAGS = -Wall -Wextra -pipe -DBUILDING_CARLA -DREAL_BUILD BASE_OPTS = -O2 -ffast-math -mtune=generic -msse -msse2 -fdata-sections -ffunction-sections LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections LINK_OPTS += -Wl,--strip-all diff --git a/source/backend/CarlaHost.h b/source/backend/CarlaHost.h index 532198e03..f4b4e1d07 100644 --- a/source/backend/CarlaHost.h +++ b/source/backend/CarlaHost.h @@ -135,8 +135,8 @@ typedef struct _CarlaPluginInfo { /*! * C++ constructor and destructor. */ - _CarlaPluginInfo() noexcept; - ~_CarlaPluginInfo() noexcept; + CARLA_API _CarlaPluginInfo() noexcept; + CARLA_API ~_CarlaPluginInfo() noexcept; CARLA_DECLARE_NON_COPY_STRUCT(_CarlaPluginInfo) #endif @@ -212,7 +212,7 @@ typedef struct _CarlaCachedPluginInfo { /*! * C++ constructor. */ - _CarlaCachedPluginInfo() noexcept; + CARLA_API _CarlaCachedPluginInfo() noexcept; CARLA_DECLARE_NON_COPY_STRUCT(_CarlaCachedPluginInfo) #endif @@ -267,8 +267,8 @@ typedef struct _CarlaParameterInfo { /*! * C++ constructor and destructor. */ - _CarlaParameterInfo() noexcept; - ~_CarlaParameterInfo() noexcept; + CARLA_API _CarlaParameterInfo() noexcept; + CARLA_API ~_CarlaParameterInfo() noexcept; CARLA_DECLARE_NON_COPY_STRUCT(_CarlaParameterInfo) #endif @@ -293,8 +293,8 @@ typedef struct _CarlaScalePointInfo { /*! * C++ constructor and destructor. */ - _CarlaScalePointInfo() noexcept; - ~_CarlaScalePointInfo() noexcept; + CARLA_API _CarlaScalePointInfo() noexcept; + CARLA_API ~_CarlaScalePointInfo() noexcept; CARLA_DECLARE_NON_COPY_STRUCT(_CarlaScalePointInfo) #endif @@ -339,7 +339,7 @@ typedef struct _CarlaTransportInfo { /*! * C++ constructor. */ - _CarlaTransportInfo() noexcept; + CARLA_API _CarlaTransportInfo() noexcept; #endif } CarlaTransportInfo; diff --git a/source/includes/CarlaDefines.h b/source/includes/CarlaDefines.h index ce0a8dcd4..6e0d5fb38 100644 --- a/source/includes/CarlaDefines.h +++ b/source/includes/CarlaDefines.h @@ -220,6 +220,21 @@ private: \ static void* operator new(std::size_t); #endif +/* Define CARLA_API */ +#ifdef BUILD_BRIDGE +# define CARLA_API +#else +# if defined(CARLA_OS_WIN) && ! defined(__WINE__) +# ifdef BUILDING_CARLA +# define CARLA_API __declspec (dllexport) +# else +# define CARLA_API __declspec (imexport) +# endif +# else +# define CARLA_API __attribute__ ((visibility("default"))) +# endif +#endif + /* Define CARLA_EXTERN_C */ #ifdef __cplusplus # define CARLA_EXTERN_C extern "C" @@ -232,9 +247,9 @@ private: \ # define CARLA_EXPORT CARLA_EXTERN_C #else # if defined(CARLA_OS_WIN) && ! defined(__WINE__) -# define CARLA_EXPORT CARLA_EXTERN_C __declspec (dllexport) +# define CARLA_EXPORT CARLA_EXTERN_C CARLA_API # else -# define CARLA_EXPORT CARLA_EXTERN_C __attribute__ ((visibility("default"))) +# define CARLA_EXPORT CARLA_EXTERN_C CARLA_API # endif #endif