Merge branch 'mingw64-compat-fixes'
* mingw64-compat-fixes: CMakeLists.txt: install libFLAC-8.dll for win32 build Improved support for MinGW cross compile builds
This commit is contained in:
@@ -9,21 +9,29 @@ ELSE(WIN32)
|
||||
ENDIF(WIN32)
|
||||
|
||||
MESSAGE("PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
EXEC_PROGRAM( ${CMAKE_C_COMPILER} ARGS "-dumpmachine" OUTPUT_VARIABLE Machine )
|
||||
MESSAGE("Machine: ${Machine}")
|
||||
SET(LMMS_HOST_X86 FALSE)
|
||||
SET(LMMS_HOST_X86_64 FALSE)
|
||||
STRING(REGEX MATCH "i.86" IS_X86 "${Machine}")
|
||||
STRING(REGEX MATCH "86_64" IS_X86_64 "${Machine}")
|
||||
|
||||
IF(WIN32)
|
||||
IF(WIN64)
|
||||
SET(IS_X86_64 TRUE)
|
||||
SET(LMMS_BUILD_WIN64 TRUE)
|
||||
ELSE(WIN64)
|
||||
SET(IS_X86 TRUE)
|
||||
ENDIF(WIN64)
|
||||
ELSE(WIN32)
|
||||
EXEC_PROGRAM( ${CMAKE_C_COMPILER} ARGS "-dumpmachine" OUTPUT_VARIABLE Machine )
|
||||
MESSAGE("Machine: ${Machine}")
|
||||
STRING(REGEX MATCH "i.86" IS_X86 "${Machine}")
|
||||
STRING(REGEX MATCH "86_64" IS_X86_64 "${Machine}")
|
||||
ENDIF(WIN32)
|
||||
|
||||
IF(IS_X86)
|
||||
MESSAGE("-- Target host is 32 bit")
|
||||
SET(LMMS_HOST_X86 TRUE)
|
||||
ELSEIF(IS_X86_64)
|
||||
MESSAGE("-- Target host is 64 bit")
|
||||
SET(LMMS_HOST_X86_64 TRUE)
|
||||
IF(WIN32)
|
||||
SET(LMMS_BUILD_WIN64 1)
|
||||
ENDIF(WIN32)
|
||||
ELSE(IS_X86)
|
||||
MESSAGE("Can't identify target host. Assuming 32 bit platform.")
|
||||
ENDIF(IS_X86)
|
||||
|
||||
41
cmake/modules/MinGWCrossCompile.cmake
Normal file
41
cmake/modules/MinGWCrossCompile.cmake
Normal file
@@ -0,0 +1,41 @@
|
||||
# this one is important
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
#this one not so much
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# where is 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-)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++)
|
||||
|
||||
# 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(QT_BINARY_DIR ${MINGW_PREFIX}/bin)
|
||||
SET(QT_LIBRARY_DIR ${MINGW_PREFIX}/lib)
|
||||
SET(QT_QTCORE_LIBRARY ${MINGW_PREFIX}/lib/libQtCore4.a)
|
||||
SET(QT_INCLUDE_DIR ${MINGW_PREFIX}/include/qt4)
|
||||
SET(QT_HEADERS_DIR ${MINGW_PREFIX}/include/qt4)
|
||||
SET(QT_QTCORE_INCLUDE_DIR ${MINGW_PREFIX}/include/qt4/QtCore)
|
||||
SET(QT_MKSPECS_DIR ${MINGW_PREFIX}/share/qt4/mkspecs)
|
||||
SET(QT_MOC_EXECUTABLE ${QT_BINARY_DIR}/moc.exe)
|
||||
SET(QT_RCC_EXECUTABLE ${QT_BINARY_DIR}/rcc.exe)
|
||||
SET(QT_QMAKE_EXECUTABLE /usr/bin/qmake)
|
||||
SET(QT_UIC_EXECUTABLE ${QT_BINARY_DIR}/uic.exe)
|
||||
|
||||
# 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)
|
||||
|
||||
@@ -1,44 +1,10 @@
|
||||
SET(MINGW_PREFIX /opt/mingw32)
|
||||
|
||||
# this one is important
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
#this one not so much
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
SET(CMAKE_SYSTEM_PROCESSOR i686)
|
||||
SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX})
|
||||
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${MINGW_PREFIX}/bin/i586-pc-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}/bin/i586-pc-mingw32-g++)
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH /opt/mingw32)
|
||||
|
||||
SET(QT_BINARY_DIR ${MINGW_PREFIX}/bin)
|
||||
SET(QT_LIBRARY_DIR ${MINGW_PREFIX}/lib)
|
||||
SET(QT_QTCORE_LIBRARY ${MINGW_PREFIX}/lib/libQtCore4.a)
|
||||
SET(QT_INCLUDE_DIR ${MINGW_PREFIX}/include/qt4)
|
||||
SET(QT_HEADERS_DIR ${MINGW_PREFIX}/include/qt4)
|
||||
SET(QT_QTCORE_INCLUDE_DIR ${MINGW_PREFIX}/include/qt4/QtCore)
|
||||
SET(QT_MKSPECS_DIR ${MINGW_PREFIX}/share/qt4/mkspecs)
|
||||
SET(QT_MOC_EXECUTABLE ${QT_BINARY_DIR}/moc.exe)
|
||||
SET(QT_RCC_EXECUTABLE ${QT_BINARY_DIR}/rcc.exe)
|
||||
SET(QT_QMAKE_EXECUTABLE /usr/bin/qmake)
|
||||
SET(QT_UIC_EXECUTABLE ${QT_BINARY_DIR}/uic.exe)
|
||||
|
||||
# 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)
|
||||
|
||||
SET(PKG_CONFIG_EXECUTABLE ${MINGW_PREFIX}/bin/pkg-config)
|
||||
|
||||
SET(CMAKE_C_FLAGS "-march=i686 -mtune=generic")
|
||||
SET(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
|
||||
|
||||
INCLUDE_DIRECTORIES(${MINGW_PREFIX}/include)
|
||||
LINK_DIRECTORIES(${MINGW_PREFIX}/lib ${MINGW_PREFIX}/bin)
|
||||
|
||||
INCLUDE(MinGWCrossCompile)
|
||||
|
||||
|
||||
@@ -1,39 +1,9 @@
|
||||
# this one is important
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
#this one not so much
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
SET(MINGW_PREFIX /opt/mingw64)
|
||||
|
||||
SET(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
SET(CMAKE_INSTALL_PREFIX /opt/mingw64)
|
||||
|
||||
SET(CC_PREFIX /opt/mingw64)
|
||||
SET(WIN64 TRUE)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${CC_PREFIX}/bin/x86_64-pc-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${CC_PREFIX}/bin/x86_64-pc-mingw32-g++)
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH /opt/mingw64)
|
||||
|
||||
SET(QT_BINARY_DIR ${CC_PREFIX}/bin)
|
||||
SET(QT_LIBRARY_DIR ${CC_PREFIX}/lib)
|
||||
SET(QT_QTCORE_LIBRARY ${CC_PREFIX}/lib/libQtCore4.a)
|
||||
SET(QT_INCLUDE_DIR ${CC_PREFIX}/include/qt4)
|
||||
SET(QT_QTCORE_INCLUDE_DIR ${CC_PREFIX}/include/qt4/QtCore)
|
||||
SET(QT_MKSPECS_DIR ${CC_PREFIX}/share/qt4/mkspecs)
|
||||
SET(QT_MOC_EXECUTABLE ${QT_BINARY_DIR}/moc.exe)
|
||||
SET(QT_RCC_EXECUTABLE ${QT_BINARY_DIR}/rcc.exe)
|
||||
SET(QT_QMAKE_EXECUTABLE /usr/bin/qmake)
|
||||
SET(QT_UIC_EXECUTABLE ${QT_BINARY_DIR}/uic.exe)
|
||||
|
||||
# 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)
|
||||
|
||||
SET(PKG_CONFIG_EXECUTABLE ${CC_PREFIX}/bin/pkg-config)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CC_PREFIX}/include)
|
||||
LINK_DIRECTORIES(${CC_PREFIX}/lib ${CC_PREFIX}/bin)
|
||||
INCLUDE(MinGWCrossCompile)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user