mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-10 07:40:03 -06:00
Merge topic 'vs2022' into release-3.21
b6ac10394bVS: Update Visual Studio 17 2022 generator for Preview 4f200f4d5a7VS: Fix managed C++ project generation for VS 2022 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6524
This commit is contained in:
@@ -7,7 +7,7 @@ Generates Visual Studio 17 (VS 2022) project files.
|
||||
|
||||
.. warning::
|
||||
|
||||
This is experimental and based on "Visual Studio 2022 Preview 3.1".
|
||||
This is experimental and based on "Visual Studio 2022 Preview 4".
|
||||
As of this version of CMake, VS 2022 has not been released.
|
||||
|
||||
Project Types
|
||||
@@ -51,7 +51,7 @@ name (architecture). For example:
|
||||
Toolset Selection
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ``v143`` toolset that comes with VS 17 2022 Preview 3.1 is selected by
|
||||
The ``v143`` toolset that comes with VS 17 2022 Preview 4 is selected by
|
||||
default. The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
|
||||
via the :manual:`cmake(1)` ``-T`` option, to specify another toolset.
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ Generators
|
||||
----------
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator was added. This is
|
||||
experimental and based on "Visual Studio 2022 Preview 3.1" because this
|
||||
experimental and based on "Visual Studio 2022 Preview 4" because this
|
||||
version of VS has not been released.
|
||||
|
||||
* The :ref:`Makefile Generators` and the :generator:`Ninja` generator
|
||||
@@ -313,3 +313,9 @@ Changes made since CMake 3.21.0 include the following.
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator is now based on
|
||||
"Visual Studio 2022 Preview 3.1". Previously it was based on "Preview 2".
|
||||
|
||||
3.21.3
|
||||
------
|
||||
|
||||
* The :generator:`Visual Studio 17 2022` generator is now based on
|
||||
"Visual Studio 2022 Preview 4". Previously it was based on "Preview 3.1".
|
||||
|
||||
@@ -581,6 +581,10 @@ void cmVisualStudio10TargetGenerator::Generate()
|
||||
}
|
||||
|
||||
if (this->Managed) {
|
||||
if (this->LocalGenerator->GetVersion() >=
|
||||
cmGlobalVisualStudioGenerator::VS17) {
|
||||
e1.Element("ManagedAssembly", "true");
|
||||
}
|
||||
std::string outputType;
|
||||
switch (this->GeneratorTarget->GetType()) {
|
||||
case cmStateEnums::OBJECT_LIBRARY:
|
||||
|
||||
@@ -33,6 +33,12 @@ set(TARGET_RESX
|
||||
|
||||
set(TARGET_LIBRARIES ${SYSLIBS})
|
||||
add_executable(${PROJECT_NAME} ${TARGET_SRC} ${TARGET_H} ${TARGET_RESX})
|
||||
if(NOT CMAKE_GENERATOR MATCHES "Visual Studio 1[0-6]")
|
||||
# VS 17 2022 and above require a global mark on managed assemblies.
|
||||
# CMake adds this automatically when using COMMON_LANGUAGE_RUNTIME,
|
||||
# but this test covers direct use of /clr.
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_ManagedAssembly "true")
|
||||
endif()
|
||||
|
||||
# Note: The property VS_GLOBAL_KEYWORD must be set.
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_GLOBAL_KEYWORD "ManagedCProj")
|
||||
|
||||
Reference in New Issue
Block a user