VST build fixes

This commit is contained in:
Lukas W
2017-11-27 21:26:03 +01:00
parent e644202ffa
commit 8fce500a8d
7 changed files with 90 additions and 63 deletions

View File

@@ -7,6 +7,10 @@ INCLUDE(ExternalProject)
ADD_SUBDIRECTORY(vstbase)
IF(LMMS_BUILD_LINUX AND WANT_VST_NOWINE)
RETURN()
ENDIF()
SET(LMMS_BINARY_DIR ${CMAKE_BINARY_DIR})
SET(LMMS_SOURCE_DIR ${CMAKE_SOURCE_DIR})
@@ -25,7 +29,6 @@ SET(EXTERNALPROJECT_CMAKE_ARGS
# build 32 bit version of RemoteVstPlugin
IF(LMMS_BUILD_WIN64 AND MSVC)
SET(MSVC_VER ${CMAKE_CXX_COMPILER_VERSION})
IF(MSVC_VER VERSION_GREATER 19.0 OR MSVC_VER VERSION_EQUAL 19.0)
@@ -53,24 +56,25 @@ IF(LMMS_BUILD_WIN64 AND MSVC)
)
ELSEIF(LMMS_BUILD_WIN32)
ADD_SUBDIRECTORY(RemoteVstPlugin)
ELSEIF(LMMS_BUILD_LINUX AND NOT WANT_VST_NOWINE)
ELSEIF(LMMS_BUILD_LINUX)
ExternalProject_Add(RemoteVstPlugin32
${EXTERNALPROJECT_ARGS}
"${EXTERNALPROJECT_ARGS}"
CMAKE_ARGS
${EXTERNALPROJECT_CMAKE_ARGS}
-DCMAKE_CXX_COMPILER=${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin/winegcc
-DCMAKE_CXX_FLAGS="-m32"
-DCMAKE_CXX_COMPILER=${WINEGCC}
"-DCMAKE_CXX_FLAGS=-m32 -mwindows"
)
ENDIF()
# build 64 bit version of RemoteVstPlugin
IF(LMMS_BUILD_WIN64)
ADD_SUBDIRECTORY(RemoteVstPlugin)
ELSEIF(LMMS_BUILD_LINUX AND NOT WANT_VST_NOWINE)
ELSEIF(LMMS_BUILD_LINUX)
ExternalProject_Add(RemoteVstPlugin64
${EXTERNALPROJECT_ARGS}
"${EXTERNALPROJECT_ARGS}"
CMAKE_ARGS
${EXTERNALPROJECT_CMAKE_ARGS}
-DCMAKE_CXX_COMPILER=${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin/winegcc
-DCMAKE_CXX_COMPILER=${WINEGCC}
"-DCMAKE_CXX_FLAGS=-m64 -mwindows"
)
ENDIF()

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.0.0)
cmake_minimum_required(VERSION 3.1)
project(RemoteVstPlugin
LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)

View File

@@ -1,49 +0,0 @@
#!/bin/sh
# Wrapper script for winegcc to remove .exe file ending automatically
# appended by winebuild.
# Usage: winegcc <args ...>
set -e
args="$@"
# Find output name
POSITIONAL=()
while [ $# -gt 0 ]; do
key="$1"
case $key in
-o)
output=$2
shift
;;
-c)
no_link=true
;;
*)
;;
esac
shift
done
if [ -z "$output" ]; then
if [ "$no_link" != true ]; then
output="a.out"
no_move=true
fi
# echo "Fatal error in winegcc wrapper: Can't find output file name in args."
# exit 1
fi
wineg++ $args
if [ -z "$no_link" ] && [ "$no_move" != true ]; then
if [ ! -e "$output.exe" ]; then
echo "Fatal error in winegcc wrapper: No output file \"$output.exe\" found."
exit 1
fi
mv $output.exe $output
fi

View File

@@ -99,14 +99,14 @@ VstPlugin::VstPlugin( const QString & _plugin ) :
{
setSplittedChannels( true );
#ifdef LMMS_HOST_X86_64
#ifdef LMMS_BUILD_WIN64
tryLoad( "RemoteVstPlugin64" );
if( m_badDllFormat )
{
m_badDllFormat = false;
#endif
tryLoad( "RemoteVstPlugin32" );
#ifdef LMMS_HOST_X86_64
#ifdef LMMS_BUILD_WIN64
}
#endif