Browse Source

VS: Add option to tell generator that platfrom is WinRT by default

Create a ``CMAKE_VS_WINRT_BY_DEFAULT`` variable to indicate this.

Fixes: #18286
pull/327/head
Mikhail Korolev 7 years ago
committed by Brad King
parent
commit
e78a0c8e8a
  1. 1
      Help/manual/cmake-variables.7.rst
  2. 8
      Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
  3. 6
      Source/cmVisualStudio10TargetGenerator.cxx

1
Help/manual/cmake-variables.7.rst

@ -401,6 +401,7 @@ Variables that Control the Build
/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES
/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES
/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES
/variable/CMAKE_VS_WINRT_BY_DEFAULT
/variable/CMAKE_WIN32_EXECUTABLE
/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute

8
Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst

@ -0,0 +1,8 @@
CMAKE_VS_WINRT_BY_DEFAULT
-------------------------
Tell :ref:`Visual Studio Generators` for VS 2010 and above that the
target platform compiles as WinRT by default (compiles with ``/ZW``).
This variable is meant to be set by a
:variable:`toolchain file <CMAKE_TOOLCHAIN_FILE>` for such platforms.

6
Source/cmVisualStudio10TargetGenerator.cxx

@ -2571,8 +2571,10 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
}
if (this->MSTools) {
// If we have the VS_WINRT_COMPONENT set then force Compile as WinRT.
if (this->GeneratorTarget->GetPropertyAsBool("VS_WINRT_COMPONENT")) {
// If we have the VS_WINRT_COMPONENT or CMAKE_VS_WINRT_BY_DEFAULT
// set then force Compile as WinRT.
if (this->GeneratorTarget->GetPropertyAsBool("VS_WINRT_COMPONENT") ||
this->Makefile->IsOn("CMAKE_VS_WINRT_BY_DEFAULT")) {
clOptions.AddFlag("CompileAsWinRT", "true");
// For WinRT components, add the _WINRT_DLL define to produce a lib
if (this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY ||

Loading…
Cancel
Save