From 852708863a62afeaa577ae425872345002eb7d03 Mon Sep 17 00:00:00 2001 From: Lukas W Date: Wed, 22 Nov 2017 16:09:55 +0100 Subject: [PATCH] Fix Linux compilation issues caused by MSVC fixes --- CMakeLists.txt | 8 ++------ include/BasicFilters.h | 4 ++-- include/NotePlayHandle.h | 2 +- include/export.h | 8 +++----- plugins/LadspaEffect/CMakeLists.txt | 6 +++--- plugins/MultitapEcho/MultitapEchoControls.cpp | 1 + plugins/papu/CMakeLists.txt | 3 --- plugins/vst_base/CMakeLists.txt | 1 + plugins/zynaddsubfx/CMakeLists.txt | 1 + src/core/LocklessAllocator.cpp | 4 ++++ src/core/MixerWorkerThread.cpp | 11 ++--------- 11 files changed, 20 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b27c52da5..5e32368b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -471,14 +471,11 @@ ELSE() SET (STATUS_DEBUG_FPE "Disabled") ENDIF(WANT_DEBUG_FPE) - # check for libsamplerate PKG_CHECK_MODULES(SAMPLERATE REQUIRED samplerate>=0.1.8) - -message("Compiler: ${CMAKE_CXX_COMPILER_ID} Is MSVC: ${MSVC} Version: ${MSVC}") # set compiler flags -IF(CMAKE_CXX_COMPILER_ID MATCHES (GNU|AppleClang)) +IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|AppleClang") SET(WERROR_FLAGS "-Wall -Werror=unused-function -Wno-sign-compare -Wno-strict-overflow") OPTION(USE_WERROR "Add -werror to the build flags. Stops the build on warnings" OFF) IF(${USE_WERROR}) @@ -522,8 +519,7 @@ LIST(SORT LMMS_INCLUDES) # we somehow have to make LMMS-binary depend on MOC-files ADD_FILE_DEPENDENCIES("${CMAKE_BINARY_DIR}/lmmsconfig.h") -#SET(CMAKE_POSITION_INDEPENDENT_CODE ON) -IF(CMAKE_CXX_COMPILER_ID MATCHES (GNU|AppleClang)) +IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|AppleClang") IF(WIN32) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") ELSE(WIN32) diff --git a/include/BasicFilters.h b/include/BasicFilters.h index a0a1fc85d..684596c4d 100644 --- a/include/BasicFilters.h +++ b/include/BasicFilters.h @@ -44,7 +44,7 @@ #include "interpolation.h" #include "MemoryManager.h" -template class BasicFilters; +template class BasicFilters; template class LinkwitzRiley @@ -218,7 +218,7 @@ private: }; typedef OnePole<2> StereoOnePole; -template +template class BasicFilters { MM_OPERATORS diff --git a/include/NotePlayHandle.h b/include/NotePlayHandle.h index 344980eb6..86d10df71 100644 --- a/include/NotePlayHandle.h +++ b/include/NotePlayHandle.h @@ -27,6 +27,7 @@ #define NOTE_PLAY_HANDLE_H #include "AtomicInt.h" +#include "BasicFilters.h" #include "Note.h" #include "PlayHandle.h" #include "Track.h" @@ -36,7 +37,6 @@ class QReadWriteLock; class InstrumentTrack; class NotePlayHandle; -template class BasicFilters; typedef QList NotePlayHandleList; typedef QList ConstNotePlayHandleList; diff --git a/include/export.h b/include/export.h index 80d6b7452..dd3709704 100644 --- a/include/export.h +++ b/include/export.h @@ -22,8 +22,6 @@ * */ -#include - #ifndef EXPORT_H #define EXPORT_H @@ -32,10 +30,10 @@ #ifdef LMMS_BUILD_WIN32 #ifdef PLUGIN_NAME -#define EXPORT Q_DECL_IMPORT -#define PLUGIN_EXPORT Q_DECL_EXPORT +#define EXPORT __declspec(dllimport) +#define PLUGIN_EXPORT __declspec(dllexport) #else -#define EXPORT Q_DECL_EXPORT +#define EXPORT __declspec(dllexport) #endif #else diff --git a/plugins/LadspaEffect/CMakeLists.txt b/plugins/LadspaEffect/CMakeLists.txt index bd178a8c4..25ea5c4c8 100644 --- a/plugins/LadspaEffect/CMakeLists.txt +++ b/plugins/LadspaEffect/CMakeLists.txt @@ -1,12 +1,12 @@ INCLUDE(BuildPlugin) -# Disable C++11 -SET(CMAKE_CXX_STANDARD 98) - BUILD_PLUGIN(ladspaeffect LadspaEffect.cpp LadspaControls.cpp LadspaControlDialog.cpp LadspaSubPluginFeatures.cpp LadspaEffect.h LadspaControls.h LadspaControlDialog.h LadspaSubPluginFeatures.h MOCFILES LadspaEffect.h LadspaControls.h LadspaControlDialog.h EMBEDDED_RESOURCES logo.png) SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/ladspa") +# Disable C++11 +SET(CMAKE_CXX_STANDARD 98) + IF(WANT_CAPS) ADD_SUBDIRECTORY(caps) ENDIF(WANT_CAPS) diff --git a/plugins/MultitapEcho/MultitapEchoControls.cpp b/plugins/MultitapEcho/MultitapEchoControls.cpp index 899d3e80f..533f5c30e 100644 --- a/plugins/MultitapEcho/MultitapEchoControls.cpp +++ b/plugins/MultitapEcho/MultitapEchoControls.cpp @@ -24,6 +24,7 @@ */ #include +#include #include "MultitapEchoControls.h" #include "MultitapEcho.h" diff --git a/plugins/papu/CMakeLists.txt b/plugins/papu/CMakeLists.txt index 036ef19b5..20d9bbd20 100644 --- a/plugins/papu/CMakeLists.txt +++ b/plugins/papu/CMakeLists.txt @@ -1,6 +1,3 @@ INCLUDE(BuildPlugin) -# Disable C++11 -SET(CMAKE_CXX_STANDARD 98) - BUILD_PLUGIN(papu papu_instrument.cpp papu_instrument.h Basic_Gb_Apu.cpp Basic_Gb_Apu.h gb_apu/Gb_Oscs.cpp gb_apu/Gb_Apu.h gb_apu/Blip_Buffer.cpp gb_apu/Gb_Apu.cpp gb_apu/Gb_Oscs.h gb_apu/blargg_common.h gb_apu/Blip_Buffer.h gb_apu/Multi_Buffer.cpp gb_apu/blargg_source.h gb_apu/Multi_Buffer.h MOCFILES papu_instrument.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/vst_base/CMakeLists.txt b/plugins/vst_base/CMakeLists.txt index f92bb916e..5abd1c832 100644 --- a/plugins/vst_base/CMakeLists.txt +++ b/plugins/vst_base/CMakeLists.txt @@ -71,6 +71,7 @@ ADD_CUSTOM_COMMAND( -L${WINE_LIBRARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/RemoteVstPlugin.cpp -ansi -mwindows -lpthread ${EXTRA_FLAGS} -fno-omit-frame-pointer + -std=c++0x ${WINE_BUILD_FLAGS} -o ../RemoteVstPlugin # Ensure correct file extension diff --git a/plugins/zynaddsubfx/CMakeLists.txt b/plugins/zynaddsubfx/CMakeLists.txt index cacb2a5b9..bc711123c 100644 --- a/plugins/zynaddsubfx/CMakeLists.txt +++ b/plugins/zynaddsubfx/CMakeLists.txt @@ -1,5 +1,6 @@ INCLUDE(BuildPlugin) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) # definitions for ZynAddSubFX IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD) diff --git a/src/core/LocklessAllocator.cpp b/src/core/LocklessAllocator.cpp index 3a582fc76..3e8d3a7fd 100644 --- a/src/core/LocklessAllocator.cpp +++ b/src/core/LocklessAllocator.cpp @@ -26,6 +26,10 @@ #include +#ifndef LMMS_BUILD_WIN32 +#include +#endif + #include "lmmsconfig.h" diff --git a/src/core/MixerWorkerThread.cpp b/src/core/MixerWorkerThread.cpp index 2f3b46959..e31d8b488 100644 --- a/src/core/MixerWorkerThread.cpp +++ b/src/core/MixerWorkerThread.cpp @@ -34,13 +34,6 @@ MixerWorkerThread::JobQueue MixerWorkerThread::globalJobQueue; QWaitCondition * MixerWorkerThread::queueReadyWaitCond = NULL; QList MixerWorkerThread::workerThreads; -#ifdef _MSC_VER - #define ASM(x) __asm { x }; -#else - #define ASM(x) asm ( "x" ); -#endif - - // implementation of internal JobQueue void MixerWorkerThread::JobQueue::reset( OperationMode _opMode ) { @@ -93,8 +86,8 @@ void MixerWorkerThread::JobQueue::wait() { while( (int) m_itemsDone < (int) m_queueSize ) { -#if defined(LMMS_HOST_X86) || (defined(LMMS_HOST_X86_64) && ! defined(_MSC_VER) ) - ASM( "pause" ); +#if defined(LMMS_HOST_X86) || defined(LMMS_HOST_X86_64) + _mm_pause(); #endif } }