@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
17
cmake/msys/extract_debs.sh
Normal file
17
cmake/msys/extract_debs.sh
Normal 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
48
cmake/msys/fetch_ppa.sh
Normal 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
98
cmake/msys/msys_helper.sh
Normal 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."
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user