diff options
author | Petr Polezhaev <petr.polezhaev@larian.com> | 2019-12-03 13:00:41 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-12-16 18:46:59 (GMT) |
commit | 557ea4614ee9352cbfff7798033175230a39e0e0 (patch) | |
tree | 6cb99eab4c4114e9767241c9d255d74eea4c2ad4 /Help/variable | |
parent | 7bcef355bfa25e8d9d2dbc015b04831a7cf8c5a9 (diff) | |
download | CMake-557ea4614ee9352cbfff7798033175230a39e0e0.zip CMake-557ea4614ee9352cbfff7798033175230a39e0e0.tar.gz CMake-557ea4614ee9352cbfff7798033175230a39e0e0.tar.bz2 |
VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
Original behaviour would unconditionally enable WinRT for all projects
so source file flag generation code can acknowledge WinRT being present
and disable it for C language source files. An unintentional result of
that approach is that WinRT is enabled for ALL projects, including C++
projects/source files with no way to disable it
Instead use `CMAKE_VS_WINRT_BY_DEFAULT` as a hint that the platform is
WinRT-by-default and set global `CompileAsWinRT` flag to `false` unless
it was explicitly requested by either `WINRT_COMPONENT` option or `/ZW`
compilation option - similar to what Windows Phone/Windows Store
platform logic does
In case WinRT compilation is enabled for a project by either of
aforementioned methods, C language source file override logic will still
kick in and disable CompileAsWinRT for C source files
Fixes: #20063
Diffstat (limited to 'Help/variable')
-rw-r--r-- | Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst b/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst index 2ba8fe2..2eea424 100644 --- a/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst +++ b/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst @@ -1,8 +1,18 @@ 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``). +Inform :ref:`Visual Studio Generators` for VS 2010 and above that the +target platform enables WinRT compilation by default and it needs to +be explicitly disabled if ``/ZW`` or :prop_tgt:`VS_WINRT_COMPONENT` is +omitted (as opposed to enabling it when either of those options is +present) + +This makes cmake configuration consistent in terms of WinRT among +platforms - if you did not enable the WinRT compilation explicitly, it +will be disabled (by either not enabling it or explicitly disabling it) + +Note: WinRT compilation is always explicitly disabled for C language +source files, even if it is expliclty enabled for a project This variable is meant to be set by a :variable:`toolchain file <CMAKE_TOOLCHAIN_FILE>` for such platforms. |