aboutsummaryrefslogtreecommitdiff
path: root/scripts/toolchains
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-03-06 09:57:37 -0800
committerRobert Schumacher <roschuma@microsoft.com>2018-03-11 23:42:53 -0700
commitad7fa55bb004571bc7d2aad337dda978fe4d2bac (patch)
treea94b9aa9a0912cad3907cd8a3115e326816878f0 /scripts/toolchains
parent9f3fd252bf285aa2bbb5880e45322748ab7dcf7b (diff)
downloadvcpkg-ad7fa55bb004571bc7d2aad337dda978fe4d2bac.tar.gz
vcpkg-ad7fa55bb004571bc7d2aad337dda978fe4d2bac.zip
[vcpkg] Improve handling of external toolchains. Extract MSVC settings to a separate toolchain file.
Diffstat (limited to 'scripts/toolchains')
-rw-r--r--scripts/toolchains/windows.cmake23
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/toolchains/windows.cmake b/scripts/toolchains/windows.cmake
new file mode 100644
index 000000000..7bfc2282b
--- /dev/null
+++ b/scripts/toolchains/windows.cmake
@@ -0,0 +1,23 @@
+get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
+if(NOT _CMAKE_IN_TRY_COMPILE)
+
+ if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
+ set(VCPKG_CRT_LINK_FLAG_PREFIX "/MD")
+ elseif(VCPKG_CRT_LINKAGE STREQUAL "static")
+ set(VCPKG_CRT_LINK_FLAG_PREFIX "/MT")
+ else()
+ message(FATAL_ERROR "Invalid setting for VCPKG_CRT_LINKAGE: \"${VCPKG_CRT_LINKAGE}\". It must be \"static\" or \"dynamic\"")
+ endif()
+
+ set(CMAKE_CXX_FLAGS " /DWIN32 /D_WINDOWS /W3 /utf-8 /GR /EHsc /MP ${VCPKG_CXX_FLAGS}" CACHE STRING "")
+ set(CMAKE_C_FLAGS " /DWIN32 /D_WINDOWS /W3 /utf-8 /MP ${VCPKG_C_FLAGS}" CACHE STRING "")
+
+ set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG ${VCPKG_CRT_LINK_FLAG_PREFIX}d /Z7 /Ob0 /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}" CACHE STRING "")
+ set(CMAKE_C_FLAGS_DEBUG "/D_DEBUG ${VCPKG_CRT_LINK_FLAG_PREFIX}d /Z7 /Ob0 /Od /RTC1 ${VCPKG_C_FLAGS_DEBUG}" CACHE STRING "")
+ set(CMAKE_CXX_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG /Z7 ${VCPKG_CXX_FLAGS_RELEASE}" CACHE STRING "")
+ set(CMAKE_C_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG /Z7 ${VCPKG_C_FLAGS_RELEASE}" CACHE STRING "")
+
+ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS}" CACHE STRING "")
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS}" CACHE STRING "")
+
+endif()