diff --git a/plugins/carlabase/CMakeLists.txt b/plugins/carlabase/CMakeLists.txt index 7807aebd2..28a1bc88c 100644 --- a/plugins/carlabase/CMakeLists.txt +++ b/plugins/carlabase/CMakeLists.txt @@ -8,15 +8,11 @@ ENDIF() # If Carla was not provided by the system, make a dummy library instead if(LMMS_HAVE_WEAKCARLA) - # Mimic the autoconf header - FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/autoconf) - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/autoconf/config.h "") SET(CARLA_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/carla/source ${CMAKE_CURRENT_SOURCE_DIR}/carla/source/includes ${CMAKE_CURRENT_SOURCE_DIR}/carla/source/utils ${CMAKE_CURRENT_SOURCE_DIR}/carla/source/backend - ${CMAKE_CURRENT_BINARY_DIR}/autoconf ) ADD_LIBRARY(carla_native-plugin SHARED DummyCarla.cpp) TARGET_INCLUDE_DIRECTORIES(carla_native-plugin PUBLIC ${CARLA_INCLUDE_DIRS}) @@ -30,11 +26,19 @@ if(LMMS_HAVE_WEAKCARLA) endif() if(LMMS_HAVE_CARLA OR LMMS_HAVE_WEAKCARLA) + # Mimic the missing "config.h" + SET(CARLA_INCLUDE_DIRS ${CARLA_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/CarlaConfig) + SET(CARLA_INCLUDE_DIRS ${CARLA_INCLUDE_DIRS} PARENT_SCOPE) + INCLUDE(BuildPlugin) INCLUDE_DIRECTORIES(${CARLA_INCLUDE_DIRS}) LINK_DIRECTORIES(${CARLA_LIBRARY_DIRS}) LINK_LIBRARIES(${CARLA_LIBRARIES}) - BUILD_PLUGIN(carlabase carla.cpp carla.h MOCFILES carla.h EMBEDDED_RESOURCES artwork-patchbay.png artwork-rack.png LINK SHARED) + BUILD_PLUGIN(carlabase carla.cpp carla.h + MOCFILES carla.h + EMBEDDED_RESOURCES artwork-patchbay.png artwork-rack.png + EXPORT_BASE_NAME carlabase + LINK SHARED) SET_TARGET_PROPERTIES(carlabase PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE diff --git a/plugins/carlabase/CarlaConfig/config.h b/plugins/carlabase/CarlaConfig/config.h new file mode 100644 index 000000000..46b3f3464 --- /dev/null +++ b/plugins/carlabase/CarlaConfig/config.h @@ -0,0 +1,9 @@ +// config.h for Carla +#ifndef FOR_CARLA_CONFIG_H +#define FOR_CARLA_CONFIG_H + +#ifdef _MSC_VER +#define HAVE_CPP11_SUPPORT 1 +#endif + +#endif diff --git a/plugins/carlabase/DummyCarla.cpp b/plugins/carlabase/DummyCarla.cpp index 560e866b7..8fd9ef6d7 100644 --- a/plugins/carlabase/DummyCarla.cpp +++ b/plugins/carlabase/DummyCarla.cpp @@ -1,12 +1,13 @@ // A dummy Carla interface +#define BUILDING_CARLA #include "CarlaNativePlugin.h" -const char* carla_get_library_filename() { return nullptr; } -const char* carla_get_library_folder() { return nullptr; } -const NativePluginDescriptor* carla_get_native_rack_plugin() { return nullptr; } -const NativePluginDescriptor* carla_get_native_patchbay_plugin() { return nullptr; } -const NativePluginDescriptor* carla_get_native_patchbay16_plugin() { return nullptr; } -const NativePluginDescriptor* carla_get_native_patchbay32_plugin() { return nullptr; } -const NativePluginDescriptor* carla_get_native_patchbay64_plugin() { return nullptr; } -const NativePluginDescriptor* carla_get_native_patchbay_cv_plugin() { return nullptr; } -CarlaBackend::CarlaEngine* carla_get_native_plugin_engine(const NativePluginDescriptor* desc, NativePluginHandle handle) { return nullptr; } +CARLA_EXPORT const char* carla_get_library_filename() { return nullptr; } +CARLA_EXPORT const char* carla_get_library_folder() { return nullptr; } +CARLA_EXPORT const NativePluginDescriptor* carla_get_native_rack_plugin() { return nullptr; } +CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_plugin() { return nullptr; } +CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay16_plugin() { return nullptr; } +CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay32_plugin() { return nullptr; } +CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay64_plugin() { return nullptr; } +CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_cv_plugin() { return nullptr; } +CARLA_EXPORT CarlaBackend::CarlaEngine* carla_get_native_plugin_engine(const NativePluginDescriptor* desc, NativePluginHandle handle) { return nullptr; } diff --git a/plugins/carlabase/carla.h b/plugins/carlabase/carla.h index 393912a50..2c683add9 100644 --- a/plugins/carlabase/carla.h +++ b/plugins/carlabase/carla.h @@ -26,10 +26,9 @@ #define CARLA_H #include -#include "plugin_export.h" +#include "carlabase_export.h" #include "CarlaNative.h" -#define REAL_BUILD // FIXME this shouldn't be needed #if CARLA_VERSION_HEX >= 0x010911 #include "CarlaNativePlugin.h" #else @@ -48,7 +47,7 @@ class QPushButton; -class PLUGIN_EXPORT CarlaInstrument : public Instrument +class CARLABASE_EXPORT CarlaInstrument : public Instrument { Q_OBJECT diff --git a/plugins/carlapatchbay/carlapatchbay.cpp b/plugins/carlapatchbay/carlapatchbay.cpp index ac00630d4..ad0c1f6ae 100644 --- a/plugins/carlapatchbay/carlapatchbay.cpp +++ b/plugins/carlapatchbay/carlapatchbay.cpp @@ -25,6 +25,7 @@ #include "carla.h" #include "embed.h" +#include "plugin_export.h" #include "InstrumentTrack.h" extern "C" diff --git a/plugins/carlarack/carlarack.cpp b/plugins/carlarack/carlarack.cpp index c0a39f9c2..ee2a78835 100644 --- a/plugins/carlarack/carlarack.cpp +++ b/plugins/carlarack/carlarack.cpp @@ -25,6 +25,7 @@ #include "carla.h" #include "embed.h" +#include "plugin_export.h" #include "InstrumentTrack.h" extern "C"