Установите ConfigurationType на Драйвер в проекте Cmake - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь перевести проект KMDF VS2017 на 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 перезаписывается, когда я выбираю Release / Debug config.

Можно ли использовать set_target_properties (TARGET PROPERTIES VS_GLOBAL_variable) для добавления переменной в PropertyGroup Label = "Конфигурация" вместо PropertyGroup Label = "Global"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...