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:
Tobias Doerffel
2010-07-26 15:04:00 +02:00
12 changed files with 95 additions and 98 deletions

View File

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

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

View File

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

View File

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