CMake: migrate to new mingw-w64 toolchain

This commit is contained in:
Tobias Junghans
2017-10-18 18:17:53 +02:00
parent 14b2028438
commit 6e3046d9f9
7 changed files with 42 additions and 54 deletions

View File

@@ -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 )"

View File

@@ -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 )"

View File

@@ -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}")

View File

@@ -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)

View File

@@ -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)

View File

@@ -14,6 +14,7 @@ ADD_CUSTOM_COMMAND(TARGET RemoteVstPlugin32 POST_BUILD COMMAND "${STRIP}" "$<TAR
SET_TARGET_PROPERTIES(RemoteVstPlugin32 PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -O0")
INSTALL(TARGETS RemoteVstPlugin32 RUNTIME DESTINATION "${PLUGIN_DIR}/32")
INSTALL(FILES "${MINGW_PREFIX32}/bin/${QTCORE}.dll" "${MINGW_PREFIX32}/bin/zlib1.dll" "${MINGW_PREFIX32}/${CMAKE_SYSTEM_PROCESSOR32}-w64-mingw32/bin/libwinpthread-1.dll"
# TODO: libstdc++-6.dll libgcc_s_sjlj-1.dll
INSTALL(FILES "${MINGW_PREFIX32}/bin/${QTCORE}.dll" "${MINGW_PREFIX32}/lib/zlib1.dll" "${MINGW_PREFIX32}/lib/libwinpthread-1.dll"
DESTINATION "${PLUGIN_DIR}/32")

View File

@@ -172,24 +172,15 @@ IF(LMMS_BUILD_WIN32)
INSTALL(TARGETS lmms RUNTIME DESTINATION "${BIN_DIR}")
IF(QT5)
INSTALL(FILES
"${MINGW_PREFIX}/bin/Qt5Core.dll"
"${MINGW_PREFIX}/bin/Qt5Gui.dll"
"${MINGW_PREFIX}/bin/Qt5Widgets.dll"
"${MINGW_PREFIX}/bin/Qt5Xml.dll"
DESTINATION .)
INSTALL(FILES
"${MINGW_PREFIX}/lib/qt5/plugins/platforms/qwindows.dll"
DESTINATION ./platforms)
ELSE()
INSTALL(FILES
"${MINGW_PREFIX}/bin/QtCore4.dll"
"${MINGW_PREFIX}/bin/QtGui4.dll"
"${MINGW_PREFIX}/bin/QtSvg4.dll"
"${MINGW_PREFIX}/bin/QtXml4.dll"
DESTINATION .)
ENDIF()
INSTALL(FILES
"${MINGW_PREFIX}/bin/Qt5Core.dll"
"${MINGW_PREFIX}/bin/Qt5Gui.dll"
"${MINGW_PREFIX}/bin/Qt5Widgets.dll"
"${MINGW_PREFIX}/bin/Qt5Xml.dll"
DESTINATION .)
INSTALL(FILES
"${MINGW_PREFIX}/lib/qt5/plugins/platforms/qwindows.dll"
DESTINATION ./platforms)
INSTALL(FILES
"${MINGW_PREFIX}/bin/libsamplerate-0.dll"
@@ -197,7 +188,7 @@ IF(LMMS_BUILD_WIN32)
"${MINGW_PREFIX}/bin/libvorbis-0.dll"
"${MINGW_PREFIX}/bin/libvorbisenc-2.dll"
"${MINGW_PREFIX}/bin/libvorbisfile-3.dll"
"${MINGW_PREFIX}/bin/libjpeg-9.dll"
"${MINGW_PREFIX}/bin/libjpeg-62.dll"
"${MINGW_PREFIX}/bin/libogg-0.dll"
"${MINGW_PREFIX}/bin/libmp3lame-0.dll"
"${MINGW_PREFIX}/bin/libfftw3f-3.dll"
@@ -206,23 +197,31 @@ IF(LMMS_BUILD_WIN32)
"${MINGW_PREFIX}/bin/SDL.dll"
"${MINGW_PREFIX}/bin/libglib-2.0-0.dll"
"${MINGW_PREFIX}/bin/libgthread-2.0-0.dll"
"${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/zlib1.dll"
"${MINGW_PREFIX}/bin/libwinpthread-1.dll"
"${MINGW_PREFIX}/bin/libgcc_s_seh-1.dll"
"${MINGW_PREFIX}/bin/libstdc++-6.dll"
DESTINATION .)
ELSE()
SET(DLLDIR_GCC "/usr/lib/gcc/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32/6.3-win32")
IF(WIN64)
SET(DLL_GCC "libgcc_s_seh-1.dll")
ELSE()
SET(DLL_GCC "libgcc_s_sjlj-1.dll")
ENDIF()
INSTALL(FILES
"${MINGW_PREFIX}/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32/bin/libwinpthread-1.dll"
"${MINGW_PREFIX}/lib/zlib1.dll"
"${MINGW_PREFIX}/lib/libwinpthread-1.dll"
"${DLLDIR_GCC}/libstdc++-6.dll"
"${DLLDIR_GCC}/${DLL_GCC}"
DESTINATION .)
ENDIF()
IF(FLTK_FOUND)
INSTALL(FILES
"${MINGW_PREFIX}/bin/libfltk.dll"
"${MINGW_PREFIX}/bin/libfltk_SHARED.dll"
DESTINATION .)
ENDIF()
IF(FLUIDSYNTH_FOUND)
@@ -239,12 +238,12 @@ IF(LMMS_BUILD_WIN32)
ENDIF()
IF(PORTAUDIO_FOUND)
INSTALL(FILES
"${MINGW_PREFIX}/bin/libportaudio-2.dll"
"${MINGW_PREFIX}/bin/libportaudio.dll"
DESTINATION .)
ENDIF()
IF(SOUNDIO_FOUND)
INSTALL(FILES
"${MINGW_PREFIX}/lib/libsoundio.dll"
"${MINGW_PREFIX}/bin/libsoundio.dll"
DESTINATION .)
ENDIF()