diff options
Diffstat (limited to 'vcpkg/scripts/toolchains/mingw.cmake')
| -rw-r--r-- | vcpkg/scripts/toolchains/mingw.cmake | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/vcpkg/scripts/toolchains/mingw.cmake b/vcpkg/scripts/toolchains/mingw.cmake new file mode 100644 index 0000000..6e1b541 --- /dev/null +++ b/vcpkg/scripts/toolchains/mingw.cmake @@ -0,0 +1,74 @@ +if(NOT _VCPKG_MINGW_TOOLCHAIN)
+ set(_VCPKG_MINGW_TOOLCHAIN 1)
+
+ if(POLICY CMP0056)
+ cmake_policy(SET CMP0056 NEW)
+ endif()
+ if(POLICY CMP0066)
+ cmake_policy(SET CMP0066 NEW)
+ endif()
+ if(POLICY CMP0067)
+ cmake_policy(SET CMP0067 NEW)
+ endif()
+ if(POLICY CMP0137)
+ cmake_policy(SET CMP0137 NEW)
+ endif()
+ list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
+ VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE
+ VCPKG_C_FLAGS VCPKG_CXX_FLAGS
+ VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG
+ VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE
+ VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG
+ )
+
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+ set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "")
+ endif()
+
+ # Need to override MinGW from VCPKG_CMAKE_SYSTEM_NAME
+ set(CMAKE_SYSTEM_NAME Windows CACHE STRING "" FORCE)
+
+ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(CMAKE_SYSTEM_PROCESSOR i686 CACHE STRING "")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(CMAKE_SYSTEM_PROCESSOR armv7 CACHE STRING "")
+ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "")
+ endif()
+
+ foreach(lang C CXX)
+ set(CMAKE_${lang}_COMPILER_TARGET "${CMAKE_SYSTEM_PROCESSOR}-w64-windows-gnu" CACHE STRING "")
+ endforeach()
+
+ find_program(CMAKE_C_COMPILER "${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-gcc")
+ find_program(CMAKE_CXX_COMPILER "${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-g++")
+ find_program(CMAKE_RC_COMPILER "${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-windres")
+ if(NOT CMAKE_RC_COMPILER)
+ find_program(CMAKE_RC_COMPILER "windres")
+ endif()
+
+ string(APPEND CMAKE_C_FLAGS_INIT " ${VCPKG_C_FLAGS} ")
+ string(APPEND CMAKE_CXX_FLAGS_INIT " ${VCPKG_CXX_FLAGS} ")
+ string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ")
+
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ")
+ if(VCPKG_CRT_LINKAGE STREQUAL "static")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT "-static ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT "-static ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-static ")
+ endif()
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ")
+endif()
+
|