Initial changes for MSYS support

This commit is contained in:
tresf
2015-07-23 16:52:50 -04:00
committed by Tres Finocchiaro
parent 3f6e406eb6
commit a7f8251f4b
15 changed files with 361 additions and 58 deletions

View File

@@ -96,6 +96,15 @@ ELSE(LMMS_BUILD_WIN32)
ENDIF(LMMS_BUILD_WIN32)
# TODO: Fix linking issues with msys debug builds
IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(WANT_GIG OFF)
SET(WANT_STK OFF)
SET(WANT_SWH OFF)
SET(STATUS_GIG "not built as requested")
SET(STATUS_STK "not built as requested")
ENDIF()
CHECK_INCLUDE_FILES(stdint.h LMMS_HAVE_STDINT_H)
CHECK_INCLUDE_FILES(stdlib.h LMMS_HAVE_STDLIB_H)

View File

@@ -1,13 +1,19 @@
#!/bin/sh
MINGW=/opt/mingw32
# Accomodate both linux windows mingw locations
MINGW=/mingw32
if [ -z "$MSYSCON" ]; then
MINGW=/opt$MINGW
else
CMAKE_OPTS="$CMAKE_OPTS -DLMMS_BUILD_MSYS=1"
fi
export PATH=$PATH:$MINGW/bin
#export CFLAGS="-march=pentium3 -mtune=generic -mpreferred-stack-boundary=5 -fno-tree-vectorize"
export CFLAGS="-march=pentium3 -mtune=generic -mpreferred-stack-boundary=5 -mfpmath=sse"
export CXXFLAGS="$CFLAGS"
if [ "$1" = "-qt5" ] ; then
CMAKE_OPTS="-DWANT_QT5=ON -DCMAKE_PREFIX_PATH=$MINGW"
CMAKE_OPTS="-DWANT_QT5=ON -DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS"
fi
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/modules/Win32Toolchain.cmake -DCMAKE_MODULE_PATH=`pwd`/../cmake/modules/ $CMAKE_OPTS

View File

@@ -1,12 +1,17 @@
#!/bin/sh
MINGW=/opt/mingw64
# Accomodate both linux windows mingw locations
MINGW=/mingw64
if [ -z "$MSYSCON" ]; then
MINGW=/opt$MINGW
else
CMAKE_OPTS="$CMAKE_OPTS -DLMMS_BUILD_MSYS=1"
fi
export PATH=$PATH:$MINGW/bin
#export CFLAGS="-fno-tree-vectorize"
export CXXFLAGS="$CFLAGS"
if [ "$1" = "-qt5" ] ; then
CMAKE_OPTS="-DWANT_QT5=ON -DCMAKE_PREFIX_PATH=$MINGW"
CMAKE_OPTS="-DWANT_QT5=ON -DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS"
fi
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/modules/Win64Toolchain.cmake -DCMAKE_MODULE_PATH=`pwd`/../cmake/modules/ $CMAKE_OPTS

View File

@@ -40,6 +40,10 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
LINK_LIBRARIES(${QT_LIBRARIES})
ENDIF(LMMS_BUILD_WIN32)
IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
# Override Qt debug libraries with release versions
SET(QT_LIBRARIES "${QT_OVERRIDE_LIBRARIES}")
ENDIF()
ADD_LIBRARY(${PLUGIN_NAME} MODULE ${PLUGIN_SOURCES} ${plugin_MOC_out})
IF(QT5)

View File

@@ -12,6 +12,8 @@ IF(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
SET(LMMS_BUILD_CLANG 1)
ENDIF()
# See build_mingwXX.sh for LMMS_BUILD_MSYS
MESSAGE("PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
SET(LMMS_HOST_X86 FALSE)
SET(LMMS_HOST_X86_64 FALSE)

View File

@@ -1,41 +1,99 @@
# this one is important
SET(CMAKE_SYSTEM_NAME Windows)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)
# Required by cmake if `uname -s` is inadaquate
SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_SYSTEM_VERSION 1)
# where is the target environment
SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX})
# The target environment
SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX})
SET(MINGW_TOOL_PREFIX ${MINGW_PREFIX}/bin/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
# Windows msys mingw ships with a mostly-suitable preconfigured environment
IF(LMMS_BUILD_MSYS)
SET(STRIP ${MINGW_PREFIX}/bin/strip)
SET(WINDRES ${MINGW_PREFIX}/bin/windres)
SET(CMAKE_RC_COMPILER ${WINDRES})
SET(CMAKE_C_COMPILER ${MINGW_PREFIX}/bin/gcc)
SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}/bin/g++)
# specify the cross compiler
SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++)
SET(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}gcc)
# For 32-bit vst support
IF(WIN64)
# Specify the 32-bit cross compiler
SET(CMAKE_C_COMPILER32 ${MINGW_PREFIX32}/bin/gcc)
SET(CMAKE_CXX_COMPILER32 ${MINGW_PREFIX32}/bin/g++)
ENDIF()
# Msys compiler does not support @CMakeFiles/Include syntax
SET(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES OFF)
IF(WIN64)
# specify the cross compiler
SET(MINGW_TOOL_PREFIX32 ${MINGW_PREFIX32}/bin/${CMAKE_SYSTEM_PROCESSOR32}-w64-mingw32-)
SET(CMAKE_C_COMPILER32 ${MINGW_TOOL_PREFIX32}gcc)
SET(CMAKE_CXX_COMPILER32 ${MINGW_TOOL_PREFIX32}g++)
# Variable to assist override Qt debug libraries with release versions
SET(QT_OVERRIDE_LIBRARIES
optimized;${MINGW_PREFIX}/bin/QtGui4.dll;
optimized;${MINGW_PREFIX}/bin/QtCore4.dll;
optimized;${MINGW_PREFIX}/bin/QtXml4.dll;
debug;${MINGW_PREFIX}/bin/QtGui4.dll;
debug;${MINGW_PREFIX}/bin/QtCore4.dll;
debug;${MINGW_PREFIX}/bin/QtXml4.dll;
)
IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
# Override Qt debug libraries with release versions
SET(QT_LIBRARIES "${QT_OVERRIDE_LIBRARIES}")
ENDIF()
# Linux mingw requires explicitly defined tools to prevent clash with native system tools
ELSE()
SET(MINGW_TOOL_PREFIX ${MINGW_PREFIX}/bin/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
# Specify the cross compiler
SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++)
SET(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}gcc)
# Mingw tools
SET(STRIP ${MINGW_TOOL_PREFIX}strip)
SET(WINDRES ${MINGW_TOOL_PREFIX}windres)
SET(PKG_CONFIG_EXECUTABLE ${MINGW_TOOL_PREFIX}pkg-config)
SET(PKG_CONFIG_FOUND TRUE)
# Search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# For libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# For 32-bit vst support
IF(WIN64)
# Specify the 32-bit cross compiler
SET(MINGW_TOOL_PREFIX32 ${MINGW_PREFIX32}/bin/${CMAKE_SYSTEM_PROCESSOR32}-w64-mingw32-)
SET(CMAKE_C_COMPILER32 ${MINGW_TOOL_PREFIX32}gcc)
SET(CMAKE_CXX_COMPILER32 ${MINGW_TOOL_PREFIX32}g++)
ENDIF()
INCLUDE_DIRECTORIES(${MINGW_PREFIX}/include)
ENDIF()
# specify location of some tools
SET(STRIP ${MINGW_TOOL_PREFIX}strip)
SET(WINDRES ${MINGW_TOOL_PREFIX}windres)
SET(PKG_CONFIG_EXECUTABLE ${MINGW_TOOL_PREFIX}pkg-config)
SET(PKG_CONFIG_FOUND TRUE)
SET(QT_BINARY_DIR ${MINGW_PREFIX}/bin)
SET(QT_QMAKE_EXECUTABLE ${QT_BINARY_DIR}/qmake)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
INCLUDE_DIRECTORIES(${MINGW_PREFIX}/include)
LINK_DIRECTORIES(${MINGW_PREFIX}/lib ${MINGW_PREFIX}/bin)
# Qt tools
SET(QT_BINARY_DIR ${MINGW_PREFIX}/bin)
SET(QT_QMAKE_EXECUTABLE ${QT_BINARY_DIR}/qmake)
# Echo modified cmake vars to screen for debugging purposes
IF(NOT DEFINED ENV{MINGW_DEBUG_INFO})
MESSAGE("")
MESSAGE("Custom cmake vars: (blank = system default)")
MESSAGE("-----------------------------------------")
MESSAGE("* CMAKE_C_COMPILER : ${CMAKE_C_COMPILER}")
MESSAGE("* CMAKE_CXX_COMPILER : ${CMAKE_CXX_COMPILER}")
MESSAGE("* CMAKE_RC_COMPILER : ${CMAKE_RC_COMPILER}")
MESSAGE("* WINDRES : ${WINDRES}")
MESSAGE("* PKG_CONFIG_EXECUTABLE : ${PKG_CONFIG_EXECUTABLE}")
MESSAGE("* MINGW_TOOL_PREFIX32 : ${MINGW_TOOL_PREFIX32}")
MESSAGE("* CMAKE_C_COMPILER32 : ${CMAKE_C_COMPILER32}")
MESSAGE("* CMAKE_CXX_COMPILER32 : ${CMAKE_CXX_COMPILER32}")
MESSAGE("* STRIP : ${STRIP}")
MESSAGE("* QT_BINARY_DIR : ${QT_BINARY_DIR}")
MESSAGE("* QT_QMAKE_EXECUTABLE : ${QT_QMAKE_EXECUTABLE}")
MESSAGE("")
# So that the debug info only appears once
SET(ENV{MINGW_DEBUG_INFO} SHOWN)
ENDIF()

View File

@@ -1,6 +1,10 @@
SET(MINGW_PREFIX /opt/mingw32)
IF(LMMS_BUILD_MSYS)
SET(MINGW_PREFIX /mingw32)
ELSE()
SET(MINGW_PREFIX /opt/mingw32)
ENDIF()
SET(CMAKE_SYSTEM_PROCESSOR i686)
SET(CMAKE_SYSTEM_PROCESSOR i686)
INCLUDE(MinGWCrossCompile)

View File

@@ -1,10 +1,15 @@
SET(MINGW_PREFIX /opt/mingw64)
SET(MINGW_PREFIX32 /opt/mingw32)
IF(LMMS_BUILD_MSYS)
SET(MINGW_PREFIX /mingw64)
SET(MINGW_PREFIX32 /mingw32)
ELSE()
SET(MINGW_PREFIX /opt/mingw64)
SET(MINGW_PREFIX32 /opt/mingw32)
ENDIF()
SET(CMAKE_SYSTEM_PROCESSOR x86_64)
SET(CMAKE_SYSTEM_PROCESSOR32 i686)
SET(CMAKE_SYSTEM_PROCESSOR x86_64)
SET(CMAKE_SYSTEM_PROCESSOR32 i686)
SET(WIN64 TRUE)
SET(WIN64 TRUE)
INCLUDE(MinGWCrossCompile)

View File

@@ -0,0 +1,17 @@
#!/bin/bash
ppa_dir=./ppa/
pushd $ppa_dir
for f in *.deb; do
echo "Extracting $f..."
ar xv $f
rm debian-binary
rm control.tar.*
tar xf data.tar.*
rm data.tar.*
done
popd
echo "Your extracted files should be located in $ppa_dir"

48
cmake/msys/fetch_ppa.sh Normal file
View File

@@ -0,0 +1,48 @@
#!/bin/bash
# Trusty=14.04, Precise=12.04
PPA_DISTRO=trusty
# Architecture=i386, amd64
PPA_ARCH=amd64
# These shouldn't change
PPA_HOST=http://ppa.launchpad.net
PPA_USER=tobydox
PPA_PROJECT=mingw-x-trusty
PPA_ROOT=$PPA_HOST/$PPA_USER/$PPA_PROJECT/ubuntu
PPA_URL=$PPA_ROOT/dists/$PPA_DISTRO/main/binary-$PPA_ARCH/Packages
ppa_dir=./ppa/
temp_file=/tmp/ppa_listing_$$
echo "Connecting to $PPA_HOST to get list of packages..."
wget -qO- $PPA_URL |grep "Filename:" > $temp_file
line_count=`wc -l $temp_file |awk '{print $1}'`
echo "Found $line_count packages for download..."
echo "Downloading packages. They will be saved to $ppa_dir"
mkdir $ppa_dir
for j in `cat $temp_file` ; do
if [ "$j" = "Filename:" ] ; then
continue
fi
echo "Downloading $j..."
wget -O $ppa_dir$(basename $j) $PPA_ROOT/$j
done
echo "Cleaning up temporary files..."
rm -rf $temp_file
echo "Packages have been saved to $ppa_dir. Please run extract_debs.sh"

98
cmake/msys/msys_helper.sh Normal file
View File

@@ -0,0 +1,98 @@
#!/bin/bash
# Git repo information
fork="lmms" # i.e. "lmms" or "tobydox"
branch="master" # i.e. "master" or "stable-1.2"
# Console colors
red="\\x1B[1;31m"
green="\\x1B[1;32m"
yellow="\\x1B[1;33m"
plain="\\x1B[0m"
function info() { echo -e "\n${green}$1${plain}"; }
function warn() { echo -e "\n${yellow}$1${plain}"; }
function err() { echo -e "\n${red}$1${plain}"; exit 1;}
info "Checking for mingw environment"
env |grep MINGW
if [ $? -ne 0 ]; then
err " - Failed. Please relaunch using MinGW shell"
fi
info "Preparing the git directory..."
mkdir $HOME/.git; touch $HOME/.git/config > /dev/null &2>1
git config --global http.sslverify false
info "Cloning the repository..."
if [ -d ./lmms ]; then
warn " - Skipping, ./lmms already exists"
else
git clone -b $branch https://github.com/$fork/lmms.git
fi
info "Fetching ppa using cmake/msys/fetch_ppas.sh..."
if [ -d $HOME/ppa ]; then
warn " - Skipping, $HOME/ppa already exists"
else
./lmms/cmake/msys/fetch_ppa.sh
fi
info "Extracting debs to $HOME/ppa/opt/, etc..."
if [ -d $HOME/ppa/opt ]; then
warn " - Skipping, $HOME/ppa/opt already exists"
else
./lmms/cmake/msys/extract_debs.sh
fi
info "Preparing library merge, making all qt headers writable..."
chmod u+w /mingw64/include/qt4 -R
chmod u+w /mingw32/include/qt4 -R
info "Merging mingw headers and libraries from ppa over existing system libraries..."
find /mingw64 |grep sndfile.h
if [ $? -ne 0 ]; then
\cp -r $HOME/ppa/opt/mingw* /
else
warn " - Skipping, sndfile.h has already been merged"
fi
fltkver="1.3.3"
info "Downloading and building fltk $fltkver"
mingw_root="/$(echo $MSYSTEM|tr '[:upper:]' '[:lower:]')"
which fluid
if [ $? -ne 0 ]; then
wget http://fltk.org/pub/fltk/$fltkver/fltk-$fltkver-source.tar.gz -O $HOME/fltk-source.tar.gz
if [ $? -ne 0 ]; then
err "ERROR: Could not download fltk. Exiting."
fi
tar zxf $HOME/fltk-source.tar.gz -C $HOME/
pushd $HOME/fltk-$fltkver
info " - Compiling fltk $fltkver..."
./configure
make
info " - Installing fltk..."
make install DESTDIR=$mingw_root
if [ $? -ne 0 ]; then
err "ERROR: Could not build/install fltk -- Zyn needs this. Exiting."
fi
ln -s $mingw_root/usr/local/bin/fluid.exe $mingw_root/bin/fluid.exe
else
warn " - Skipping, fluid binary already exists"
fi
popd
info "Cleaning up..."
rm -rf $HOME/fltk-$fltkver
info "Done."

View File

@@ -1,5 +1,5 @@
SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/nsis_branding.bmp" PARENT_SCOPE)
SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lmms.ico" PARENT_SCOPE)
SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/nsis_branding.bmp")
SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lmms.ico")
SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_PROJECT_NAME}.exe" PARENT_SCOPE)
SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME_UCASE} ${VERSION}" PARENT_SCOPE)
SET(CPACK_NSIS_HELP_LINK "${PROJECT_URL}" PARENT_SCOPE)
@@ -8,8 +8,7 @@ SET(CPACK_NSIS_CONTACT "${PROJECT_EMAIL}" PARENT_SCOPE)
SET(CPACK_PACKAGE_EXECUTABLES "${CMAKE_PROJECT_NAME}.exe;${PROJECT_NAME_UCASE}" PARENT_SCOPE)
SET(CPACK_NSIS_MENU_LINKS "${CMAKE_PROJECT_NAME}.exe;${PROJECT_NAME_UCASE}" PARENT_SCOPE)
SET(CPACK_NSIS_DEFINES "!include ${CMAKE_SOURCE_DIR}/cmake/nsis/FileAssociation.nsh")
SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}" PARENT_SCOPE)
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win32" PARENT_SCOPE)
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win32")
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
\\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmp\\\" \\\"${PROJECT_NAME_UCASE} Project\\\"
\\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmpz\\\" \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\"
@@ -22,11 +21,39 @@ SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
" PARENT_SCOPE)
IF(WIN64)
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win64" PARENT_SCOPE)
SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}
InstallDir \\\"\\\$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\"" PARENT_SCOPE)
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win64")
SET(CPACK_INSTALL_FIX "$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\\")
SET(CPACK_NSIS_DEFINES "
${CPACK_NSIS_DEFINES}
InstallDir ${CPACK_INSTALL_FIX}
")
ENDIF()
# Fix windows paths for msys
IF(LMMS_BUILD_MSYS)
STRING(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}")
STRING(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_MUI_ICON "${CPACK_NSIS_MUI_ICON}")
STRING(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}")
STRING(REGEX REPLACE "/" "\\\\\\\\" CMAKE_BINARY_DIR_FIX "${CMAKE_BINARY_DIR}")
# FIXME: there's no easy way to fix $INST_DIR, so we'll redefine it manually
IF(WIN64)
SET(NSIS_ARCH "win64")
ELSE()
SET(NSIS_ARCH "win32")
ENDIF()
SET(CPACK_NSIS_DEFINES "
${CPACK_NSIS_DEFINES}
!define /redef INST_DIR ${CMAKE_BINARY_DIR_FIX}\\\\_CPack_Packages\\\\${NSIS_ARCH}\\\\NSIS\\\\${CPACK_PACKAGE_FILE_NAME}
")
ENDIF()
# Setup missing parent scopes
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}" PARENT_SCOPE)
SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}" PARENT_SCOPE)
SET(CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}" PARENT_SCOPE)
SET(CPACK_NSIS_MUI_ICON "${CPACK_NSIS_MUI_ICON}" PARENT_SCOPE)
# Windows resource compilers
CONFIGURE_FILE("lmms.rc.in" "${CMAKE_BINARY_DIR}/lmms.rc")
CONFIGURE_FILE("zynaddsubfx.rc.in" "${CMAKE_BINARY_DIR}/plugins/zynaddsubfx/zynaddsubfx.rc")

View File

@@ -16,11 +16,12 @@ IF(LMMS_BUILD_WIN32)
ADD_CUSTOM_COMMAND(TARGET RemoteVstPlugin POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:RemoteVstPlugin>")
INSTALL(TARGETS RemoteVstPlugin RUNTIME DESTINATION "${PLUGIN_DIR}")
IF(LMMS_BUILD_WIN64)
# FIXME: 32-bit VST fails on MSYS
IF(LMMS_BUILD_WIN64 AND NOT LMMS_BUILD_MSYS)
# build 32 bit version of RemoteVstPlugin for Win64 so we can load
# 32 bit VST plugins
ADD_SUBDIRECTORY(Win64)
ENDIF(LMMS_BUILD_WIN64)
ENDIF(LMMS_BUILD_WIN64 AND NOT LMMS_BUILD_MSYS)
ENDIF(LMMS_BUILD_WIN32)
BUILD_PLUGIN(vstbase vst_base.cpp VstPlugin.cpp VstPlugin.h communication.h MOCFILES VstPlugin.h)

View File

@@ -17,7 +17,7 @@ IF(LMMS_HOST_X86 OR LMMS_HOST_X86_64)
ENDIF(LMMS_HOST_X86 OR LMMS_HOST_X86_64)
# build ZynAddSubFX with full optimizations
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wno-write-strings -Wno-deprecated-declarations")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wno-write-strings -Wno-deprecated-declarations -fpermissive")
# link system-libraries when on win32
IF(LMMS_BUILD_WIN32)
@@ -114,6 +114,12 @@ SET(zynaddsubfx_core_SRCS
ADD_LIBRARY(ZynAddSubFxCore SHARED LocalZynAddSubFx.cpp ${zynaddsubfx_core_SRCS})
TARGET_LINK_LIBRARIES(ZynAddSubFxCore zynaddsubfx_nio ${FFTW3F_LIBRARIES} ${QT_LIBRARIES} -lz -lpthread)
# required libs for debug msys builds
IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
TARGET_LINK_LIBRARIES(ZynAddSubFxCore QtCore4 QtGui4 QtXml4)
ENDIF()
IF(QT5)
TARGET_LINK_LIBRARIES(ZynAddSubFxCore Qt5::Widgets Qt5::Xml)
ENDIF()

View File

@@ -127,6 +127,11 @@ TARGET_LINK_LIBRARIES(lmms
${LMMS_REQUIRED_LIBS}
)
# Required libs for debug msys builds
IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
TARGET_LINK_LIBRARIES(lmms QtCore4 QtGui4 QtXml4)
ENDIF()
#
# rules for building localizations
#
@@ -163,7 +168,9 @@ IF(LMMS_BUILD_WIN32)
LINK_FLAGS "${LINK_FLAGS} -mwindows"
ENABLE_EXPORTS ON
)
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:lmms>")
IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:lmms>")
ENDIF()
INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}")
INSTALL(FILES
@@ -191,6 +198,12 @@ IF(LMMS_BUILD_WIN32)
"${MINGW_PREFIX}/bin/zlib1.dll"
"${MINGW_PREFIX}/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32/bin/libwinpthread-1.dll"
DESTINATION .)
IF(LMMS_BUILD_MSYS)
INSTALL(FILES
"${MINGW_PREFIX}/bin/libgcc_s_seh-1.dll"
"${MINGW_PREFIX}/bin/libstdc++-6.dll"
DESTINATION .)
ENDIF()
ELSE(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)