diff --git a/cmake/build_mingw.sh b/cmake/build_mingw.sh new file mode 100755 index 00000000000..5f2d7e84bf0 --- /dev/null +++ b/cmake/build_mingw.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +if [ -z "$ARCH" ]; then + ARCH=32 +fi +MINGW=mingw$ARCH + +if [ -z "$MSYSCON" ]; then + MINGW_PATH=/opt/$MINGW + + DISTRO=$(lsb_release -si) + + if [ "$DISTRO" != "Ubuntu" ]; then + echo "This script only supports Ubuntu" + exit 1 + fi + + TOOLCHAIN_NAME="Ubuntu-MinGW-W64-$ARCH" +else + MINGW_PATH=/$MINGW + TOOLCHAIN_NAME="MSYS-$ARCH" +fi + +export PATH=$MINGW_PATH/bin:$PATH + +if [ "$ARCH" == "32" ]; then + export CFLAGS="-march=pentium4 -mtune=generic -mpreferred-stack-boundary=5 -mfpmath=sse" +fi +export CXXFLAGS="$CFLAGS" + +CMAKE_OPTS="-DCMAKE_PREFIX_PATH=$MINGW_PATH $CMAKE_OPTS" + +# shellcheck disable=SC2086 +cmake "$DIR/.." -DCMAKE_TOOLCHAIN_FILE="$DIR/toolchains/$TOOLCHAIN_NAME.cmake" $CMAKE_OPTS diff --git a/cmake/build_win32.sh b/cmake/build_win32.sh index bccda3a4802..2d7107a1395 100755 --- a/cmake/build_win32.sh +++ b/cmake/build_win32.sh @@ -1,40 +1,3 @@ #!/usr/bin/env bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Accomodate both linux windows mingw locations -if [ -z "$ARCH" ]; then - ARCH=32 -fi - -MINGW=/mingw$ARCH - -if [ -z "$MSYSCON" ]; then - MINGW=/opt$MINGW - - DISTRO=$(lsb_release -si) - DISTRO_VERSION=$(lsb_release -sr) - - if [ "$DISTRO" != "Ubuntu" ]; then - echo "This script only supports Ubuntu" - exit 1 - fi - - if [ "$DISTRO_VERSION" == "14.04" ]; then - TOOLCHAIN="$DIR/toolchains/Ubuntu-MinGW-X-Trusty-$ARCH.cmake" - else - TOOLCHAIN="$DIR/toolchains/Ubuntu-MinGW-W64-$ARCH.cmake" - fi -else - TOOLCHAIN="$DIR/toolchains/MSYS-$ARCH.cmake" -fi - -export PATH=$MINGW/bin:$PATH -export CXXFLAGS="$CFLAGS" -if [ "$ARCH" == "32" ]; then - export CFLAGS="-march=pentium4 -mtune=generic -mpreferred-stack-boundary=5 -mfpmath=sse" -fi - -CMAKE_OPTS="-DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS" - -# shellcheck disable=SC2086 -cmake "$DIR/.." -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN" $CMAKE_OPTS +ARCH=32 "$DIR/build_mingw.sh" diff --git a/cmake/build_win64.sh b/cmake/build_win64.sh index 8dabe09f8f9..c694ab439b9 100755 --- a/cmake/build_win64.sh +++ b/cmake/build_win64.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -ARCH=64 "$DIR/build_win32.sh" +ARCH=64 "$DIR/build_mingw.sh" diff --git a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-32.cmake b/cmake/toolchains/Ubuntu-MinGW-X-Trusty-32.cmake deleted file mode 100644 index 0103d35e72b..00000000000 --- a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-32.cmake +++ /dev/null @@ -1,3 +0,0 @@ -SET(MINGW_PREFIX /opt/mingw32) - -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-X-Trusty.cmake) diff --git a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake b/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake deleted file mode 100644 index 0f448fef527..00000000000 --- a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake +++ /dev/null @@ -1,9 +0,0 @@ -SET(MINGW_PREFIX /opt/mingw64) -SET(MINGW_PREFIX32 /opt/mingw32) - -SET(WIN64 TRUE) - -SET(CMAKE_TOOLCHAIN_FILE_32 "${CMAKE_CURRENT_LIST_DIR}/Ubuntu-MinGW-X-Trusty-32.cmake") -SET(CMAKE_PREFIX_PATH_32 "${MINGW_PREFIX32}") - -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-X-Trusty.cmake) diff --git a/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake b/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake index 2f78a441e7a..0a80e59b247 100644 --- a/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake +++ b/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake @@ -1,4 +1,4 @@ -# Toolchain for Ubuntu MinGw compiler shipped with the mingw-w64 and +# Toolchain for Ubuntu MinGW compiler shipped with the mingw-w64 and # g++-mingw-w64 packages SET(TOOLCHAIN_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32) set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) diff --git a/cmake/toolchains/common/Ubuntu-MinGW-X-Trusty.cmake b/cmake/toolchains/common/Ubuntu-MinGW-X-Trusty.cmake deleted file mode 100644 index 686f4497f47..00000000000 --- a/cmake/toolchains/common/Ubuntu-MinGW-X-Trusty.cmake +++ /dev/null @@ -1,58 +0,0 @@ -IF(WIN64) - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/Win64.cmake) -ELSE() - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/Win32.cmake) -ENDIF() -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/WinCrossCompile.cmake) - -# The target environment -SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX}) -SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX}) - -# Linux mingw requires explicitly defined tools to prevent clash with native system tools -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}windres) - -# Mingw tools -SET(STRIP ${MINGW_TOOL_PREFIX}strip) -SET(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config) - -# 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) - -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("* 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}") - 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()