123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #
- # Mingw-w64 cross compiler toolchain
- #
- # - The usual CMAKE variables will point to the cross compiler
- # - HOST_EXE_LINKER, HOST_C_COMPILER, HOST_EXE_LINKER_FLAGS,
- # HOST_C_FLAGS point to a host compiler
- #
- set(MINGW_TRIPLET i686-w64-mingw32)
- # For x86_64 use
- #set(MINGW_TRIPLET x86_64-w64-mingw32)
- # The location of your toolchain sys-root
- set(MINGW_PREFIX_PATH /opt/mingw32/${MINGW_TRIPLET}/)
- # or sometimes like this
- #set(MINGW_PREFIX_PATH /usr/${MINGW_TRIPLET}/sys-root)
- # the name of the target operating system
- set(CMAKE_SYSTEM_NAME Windows)
- # which compilers to use for C and C++
- set(CMAKE_C_COMPILER ${MINGW_TRIPLET}-gcc)
- set(CMAKE_CXX_COMPILER ${MINGW_TRIPLET}-g++)
- set(CMAKE_RC_COMPILER ${MINGW_TRIPLET}-windres)
- set(CMAKE_C_COMPILER ${MINGW_TRIPLET}-gcc)
- set(CMAKE_CXX_COMPILER ${MINGW_TRIPLET}-g++)
- set(CMAKE_RC_COMPILER ${MINGW_TRIPLET}-windres)
- # Where is the target environment located
- set(CMAKE_FIND_ROOT_PATH "${MINGW_PREFIX_PATH}/mingw")
- # adjust the default behaviour of the FIND_XXX() commands:
- # search headers and libraries in the target environment, search
- # programs in the host environment
- set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
- set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
- set(CROSS_TARGET ${MINGW_TRIPLET})
- # We need a host compiler too - assuming mildly sane Unix
- # defaults here
- set(HOST_C_COMPILER cc)
- set(HOST_EXE_LINKER ld)
- if (MINGW_TRIPLET MATCHES "^x86_64")
- set(HOST_C_FLAGS)
- set(HOST_EXE_LINKER_FLAGS)
- else()
- # In 32 bits systems have the HOST compiler generate 32 bits binaries
- set(HOST_C_FLAGS -m32)
- set(HOST_EXE_LINKER_FLAGS -m32)
- endif()
|