MinGWCross.cmake 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. SET(MINGW_PREFIX /usr/x86_64-w64-mingw32/)
  2. SET(CMAKE_SYSTEM_NAME Windows)
  3. SET(CMAKE_SYSTEM_PROCESSOR x86_64)
  4. # Actually a hack, w/o this will cause some strange errors
  5. SET(CMAKE_HOST_WIN32 TRUE)
  6. SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
  7. SET(SDL2_PATH ${MINGW_PREFIX})
  8. SET(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
  9. # Specify the cross compiler
  10. SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc-posix)
  11. SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++-posix)
  12. SET(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}windres)
  13. # Mingw tools
  14. SET(STRIP ${MINGW_TOOL_PREFIX}strip)
  15. SET(WINDRES ${MINGW_TOOL_PREFIX}windres)
  16. SET(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
  17. # ccache wrapper
  18. OPTION(USE_CCACHE "Use ccache for compilation" OFF)
  19. IF(USE_CCACHE)
  20. FIND_PROGRAM(CCACHE ccache)
  21. IF (CCACHE)
  22. MESSAGE(STATUS "Using ccache found in PATH")
  23. SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
  24. SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
  25. ELSE(CCACHE)
  26. MESSAGE(WARNING "USE_CCACHE enabled, but no ccache found")
  27. ENDIF(CCACHE)
  28. ENDIF(USE_CCACHE)
  29. # Search for programs in the build host directories
  30. SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
  31. # Echo modified cmake vars to screen for debugging purposes
  32. IF(NOT DEFINED ENV{MINGW_DEBUG_INFO})
  33. MESSAGE("")
  34. MESSAGE("Custom cmake vars: (blank = system default)")
  35. MESSAGE("-----------------------------------------")
  36. MESSAGE("* CMAKE_C_COMPILER : ${CMAKE_C_COMPILER}")
  37. MESSAGE("* CMAKE_CXX_COMPILER : ${CMAKE_CXX_COMPILER}")
  38. MESSAGE("* CMAKE_RC_COMPILER : ${CMAKE_RC_COMPILER}")
  39. MESSAGE("* WINDRES : ${WINDRES}")
  40. MESSAGE("* ENV{PKG_CONFIG} : $ENV{PKG_CONFIG}")
  41. MESSAGE("* STRIP : ${STRIP}")
  42. MESSAGE("* USE_CCACHE : ${USE_CCACHE}")
  43. MESSAGE("")
  44. # So that the debug info only appears once
  45. SET(ENV{MINGW_DEBUG_INFO} SHOWN)
  46. ENDIF()