1 2if(NOT ARCH) 3 set(ARCH i386) 4endif() 5 6# Choose the right MinGW toolchain prefix 7if(NOT DEFINED MINGW_TOOLCHAIN_PREFIX) 8 if(ARCH STREQUAL "i386") 9 10 if(CMAKE_HOST_WIN32) 11 set(MINGW_TOOLCHAIN_PREFIX "" CACHE STRING "MinGW Toolchain Prefix") 12 else() 13 set(MINGW_TOOLCHAIN_PREFIX "i686-w64-mingw32-" CACHE STRING "MinGW-W64 Toolchain Prefix") 14 endif() 15 16 elseif(ARCH STREQUAL "amd64") 17 set(MINGW_TOOLCHAIN_PREFIX "x86_64-w64-mingw32-" CACHE STRING "MinGW Toolchain Prefix") 18 elseif(ARCH STREQUAL "arm") 19 set(MINGW_TOOLCHAIN_PREFIX "arm-mingw32ce-" CACHE STRING "MinGW Toolchain Prefix") 20 endif() 21endif() 22 23if(NOT DEFINED MINGW_TOOLCHAIN_SUFFIX) 24 set(MINGW_TOOLCHAIN_SUFFIX "" CACHE STRING "MinGW Toolchain Suffix") 25endif() 26 27if(ENABLE_CCACHE) 28 set(CCACHE "ccache" CACHE STRING "ccache") 29else() 30 set(CCACHE "" CACHE STRING "ccache") 31endif() 32 33# The name of the target operating system 34set(CMAKE_SYSTEM_NAME Windows) 35set(CMAKE_SYSTEM_PROCESSOR i686) 36 37# Which tools to use 38set(CMAKE_C_COMPILER clang) 39set(CMAKE_CXX_COMPILER ${MINGW_TOOLCHAIN_PREFIX}g++${MINGW_TOOLCHAIN_SUFFIX}) 40set(CMAKE_ASM_COMPILER ${MINGW_TOOLCHAIN_PREFIX}gcc${MINGW_TOOLCHAIN_SUFFIX}) 41set(CMAKE_ASM_COMPILER_ID "GNU") 42set(CMAKE_MC_COMPILER ${MINGW_TOOLCHAIN_PREFIX}windmc) 43set(CMAKE_RC_COMPILER ${MINGW_TOOLCHAIN_PREFIX}windres) 44set(CMAKE_DLLTOOL ${MINGW_TOOLCHAIN_PREFIX}dlltool) 45 46if(CMAKE_HOST_WIN32) 47 set(CMAKE_AR ar) 48endif() 49 50set(CMAKE_C_CREATE_STATIC_LIBRARY "${CMAKE_AR} crT <TARGET> <LINK_FLAGS> <OBJECTS>") 51set(CMAKE_CXX_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY}) 52set(CMAKE_ASM_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY}) 53 54# Don't link with anything by default unless we say so 55set(CMAKE_C_STANDARD_LIBRARIES "-lgcc" CACHE STRING "Standard C Libraries") 56 57#MARK_AS_ADVANCED(CLEAR CMAKE_CXX_STANDARD_LIBRARIES) 58set(CMAKE_CXX_STANDARD_LIBRARIES "-lgcc" CACHE STRING "Standard C++ Libraries") 59 60set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nostdlib -Wl,--enable-auto-image-base,--disable-auto-import") 61set(CMAKE_MODULE_LINKER_FLAGS_INIT "-nostdlib -Wl,--enable-auto-image-base,--disable-auto-import") 62