From 6e3046d9f930cbc3751e3d6d3d0a0f242efc996d Mon Sep 17 00:00:00 2001 From: Tobias Junghans Date: Wed, 18 Oct 2017 18:17:53 +0200 Subject: [PATCH] CMake: migrate to new mingw-w64 toolchain --- cmake/build_mingw32.sh | 13 +++---- cmake/build_mingw64.sh | 13 +++---- cmake/modules/MinGWCrossCompile.cmake | 12 +++---- cmake/modules/Win32Toolchain.cmake | 2 +- cmake/modules/Win64Toolchain.cmake | 4 +-- plugins/vst_base/Win64/CMakeLists.txt | 3 +- src/CMakeLists.txt | 49 +++++++++++++-------------- 7 files changed, 42 insertions(+), 54 deletions(-) diff --git a/cmake/build_mingw32.sh b/cmake/build_mingw32.sh index b5501dc88..c92f5dac6 100755 --- a/cmake/build_mingw32.sh +++ b/cmake/build_mingw32.sh @@ -3,22 +3,17 @@ # Accomodate both linux windows mingw locations MINGW=/mingw32 if [ -z "$MSYSCON" ]; then - MINGW=/opt$MINGW + MINGW=/usr/i686-w64-mingw32 else CMAKE_OPTS="$CMAKE_OPTS -DLMMS_BUILD_MSYS=1" + export PATH=$MINGW/bin:$PATH fi -export PATH=$MINGW/bin:$PATH +export PKG_CONFIG_PATH=$MINGW/lib/pkgconfig/ export CFLAGS="-march=pentium3 -mtune=generic -mpreferred-stack-boundary=5 -mfpmath=sse" export CXXFLAGS="$CFLAGS" -if [ "$1" = "-qt5" ]; then - QT5=True -fi - -if [ $QT5 ]; then - CMAKE_OPTS="-DWANT_QT5=$QT5 -DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS" -fi +CMAKE_OPTS="-DWANT_QT5=True -DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" diff --git a/cmake/build_mingw64.sh b/cmake/build_mingw64.sh index 42a662bf1..fd7f465bc 100755 --- a/cmake/build_mingw64.sh +++ b/cmake/build_mingw64.sh @@ -3,20 +3,15 @@ # Accomodate both linux windows mingw locations MINGW=/mingw64 if [ -z "$MSYSCON" ]; then - MINGW=/opt$MINGW + MINGW=/usr/x86_64-w64-mingw32 else CMAKE_OPTS="$CMAKE_OPTS -DLMMS_BUILD_MSYS=1" + export PATH=$MINGW/bin:$PATH fi -export PATH=$MINGW/bin:$PATH +export PKG_CONFIG_PATH=$MINGW/lib/pkgconfig/ -if [ "$1" = "-qt5" ]; then - QT5=True -fi - -if [ $QT5 ]; then - CMAKE_OPTS="-DWANT_QT5=$QT5 -DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS" -fi +CMAKE_OPTS="-DWANT_QT5=True -DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" diff --git a/cmake/modules/MinGWCrossCompile.cmake b/cmake/modules/MinGWCrossCompile.cmake index 50ea72900..a9483cf43 100644 --- a/cmake/modules/MinGWCrossCompile.cmake +++ b/cmake/modules/MinGWCrossCompile.cmake @@ -40,7 +40,8 @@ IF(LMMS_BUILD_MSYS) 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-) + SET(MINGW_PREFIX /usr/${MINGW_TARGET}/) + SET(MINGW_TOOL_PREFIX /usr/bin/${MINGW_TARGET}-) # Specify the cross compiler SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc) @@ -50,7 +51,6 @@ ELSE() # Mingw tools SET(STRIP ${MINGW_TOOL_PREFIX}strip) SET(WINDRES ${MINGW_TOOL_PREFIX}windres) - SET(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config) # Search for programs in the build host directories SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) @@ -61,15 +61,14 @@ ELSE() # 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(MINGW_PREFIX32 /usr/${MINGW_TARGET32}/) + SET(MINGW_TOOL_PREFIX32 /usr/bin/${MINGW_TARGET32}-) SET(CMAKE_C_COMPILER32 ${MINGW_TOOL_PREFIX32}gcc) SET(CMAKE_CXX_COMPILER32 ${MINGW_TOOL_PREFIX32}g++) ENDIF() - - INCLUDE_DIRECTORIES(${MINGW_PREFIX}/include) ENDIF() -LINK_DIRECTORIES(${MINGW_PREFIX}/lib ${MINGW_PREFIX}/bin) +LINK_DIRECTORIES(${MINGW_PREFIX}/lib) # Qt tools SET(QT_BINARY_DIR ${MINGW_PREFIX}/bin) @@ -84,7 +83,6 @@ IF(NOT DEFINED ENV{MINGW_DEBUG_INFO}) MESSAGE("* CMAKE_CXX_COMPILER : ${CMAKE_CXX_COMPILER}") MESSAGE("* CMAKE_RC_COMPILER : ${CMAKE_RC_COMPILER}") MESSAGE("* WINDRES : ${WINDRES}") - MESSAGE("* ENV{PKG_CONFIG} : $ENV{PKG_CONFIG}") MESSAGE("* MINGW_TOOL_PREFIX32 : ${MINGW_TOOL_PREFIX32}") MESSAGE("* CMAKE_C_COMPILER32 : ${CMAKE_C_COMPILER32}") MESSAGE("* CMAKE_CXX_COMPILER32 : ${CMAKE_CXX_COMPILER32}") diff --git a/cmake/modules/Win32Toolchain.cmake b/cmake/modules/Win32Toolchain.cmake index 60e8d3a47..45e3e680e 100644 --- a/cmake/modules/Win32Toolchain.cmake +++ b/cmake/modules/Win32Toolchain.cmake @@ -1,7 +1,7 @@ IF(LMMS_BUILD_MSYS) SET(MINGW_PREFIX /mingw32) ELSE() - SET(MINGW_PREFIX /opt/mingw32) + SET(MINGW_TARGET i686-w64-mingw32) ENDIF() SET(CMAKE_SYSTEM_PROCESSOR i686) diff --git a/cmake/modules/Win64Toolchain.cmake b/cmake/modules/Win64Toolchain.cmake index 2b569e7ac..ab6a95d56 100644 --- a/cmake/modules/Win64Toolchain.cmake +++ b/cmake/modules/Win64Toolchain.cmake @@ -2,8 +2,8 @@ IF(LMMS_BUILD_MSYS) SET(MINGW_PREFIX /mingw64) SET(MINGW_PREFIX32 /mingw32) ELSE() - SET(MINGW_PREFIX /opt/mingw64) - SET(MINGW_PREFIX32 /opt/mingw32) + SET(MINGW_TARGET32 i686-w64-mingw32) + SET(MINGW_TARGET x86_64-w64-mingw32) ENDIF() SET(CMAKE_SYSTEM_PROCESSOR x86_64) diff --git a/plugins/vst_base/Win64/CMakeLists.txt b/plugins/vst_base/Win64/CMakeLists.txt index 6a670829c..10a508daf 100644 --- a/plugins/vst_base/Win64/CMakeLists.txt +++ b/plugins/vst_base/Win64/CMakeLists.txt @@ -14,6 +14,7 @@ ADD_CUSTOM_COMMAND(TARGET RemoteVstPlugin32 POST_BUILD COMMAND "${STRIP}" "$