Fix linking issues with the dummy Carla library(especially with MSVC)

This commit is contained in:
Hyunjin Song
2020-03-25 14:46:15 +09:00
parent d173f42fec
commit 7628b253b0
6 changed files with 32 additions and 17 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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; }

View File

@@ -26,10 +26,9 @@
#define CARLA_H
#include <QtCore/QMutex>
#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

View File

@@ -25,6 +25,7 @@
#include "carla.h"
#include "embed.h"
#include "plugin_export.h"
#include "InstrumentTrack.h"
extern "C"

View File

@@ -25,6 +25,7 @@
#include "carla.h"
#include "embed.h"
#include "plugin_export.h"
#include "InstrumentTrack.h"
extern "C"