在Cmake项目中将ConfigurationType设置为Driver

时间:2019-03-20 05:49:06

标签: cmake visual-studio-2017

我正在尝试将VS2017 KMDF项目过渡到cmake,我查看了vcxproj文件,并将以下内容添加到cmakelists.txt中以尝试复制它:

  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_WDKVersion ${WdkVersion})
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_WDK_ROOT ${WDKContentRoot})
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_PlatformToolset "WindowsKernelModeDriver10.0")
  set_target_properties(${KmdTarget} PROPERTIES ConfigurationType "Driver")
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_DriverType "KMDF")
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_DriverTargetPlatform Universal)
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_KMDF_VERSION_MAJOR 1)
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL_KMDF_VERSION_MINOR 19)
  set_target_properties(${KmdTarget} PROPERTIES VS_GLOBAL__NT_TARGET_VERSION 0xA000002)

但这会在cmake生成的vcxproj中导致以下结果:

  <PropertyGroup Label="Globals">
    <ProjectGuid>{A6336750-908F-33D3-937B-23E24AB3DF11}</ProjectGuid>
    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
    <Keyword>Win32Proj</Keyword>
    <Platform>x64</Platform>
    <ProjectName>TestKmd</ProjectName>
    <VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
    <DriverTargetPlatform>Universal</DriverTargetPlatform>
    <ConfigurationType>Driver</ConfigurationType>
    <DriverType>KMDF</DriverType>
    <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
    <KMDF_VERSION_MINOR>19</KMDF_VERSION_MINOR>
    <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
    <WDKVersion>10.0.18307.0</WDKVersion>
    <_NT_TARGET_VERSION>0xA000002</_NT_TARGET_VERSION>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <CharacterSet>MultiByte</CharacterSet>
    <PlatformToolset>v141</PlatformToolset>
  </PropertyGroup>

如您所见,当我选择“发布/调试配置”时, ConfigurationType 被覆盖。

是否可以使用 set_target_properties(TARGET PROPERTIES VS_GLOBAL_variable)变量添加到 PropertyGroup Label =“ Configuration” 而不是 PropertyGroup Label =“ Global”

0 个答案:

没有答案
相关问题