Указание дополнительных зависимостей в определении инструмента пользовательской сборки - PullRequest
0 голосов
/ 05 июля 2019

У меня есть установка на основе https://github.com/AndrewJDR/glslvalidatevs для автоматической компиляции любого файла шейдера GLSL, присутствующего в моем проекте Visual Studio 2019.

Вот содержание моей версии GLSLValidateVS.props, так как она отличается от той, что в хранилище выше:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <PropertyPageSchema Include="$(MSBuildThisFileDirectory)GLSLValidateTargets.props" />
    <AvailableItemName Include="GLSLValidate">
      <Targets>GLSLValidate</Targets>
    </AvailableItemName>
  </ItemGroup>
  <PropertyGroup Label="UserMacros">
    <GLSLValidatorExe>%VULKAN_SDK%\Bin\glslangValidator.exe</GLSLValidatorExe>
  </PropertyGroup>
  <ItemGroup>
    <BuildMacro Include="GLSLValidatorExe">
      <Value>$(GLSLValidatorExe)</Value>
      <EnvironmentVariable>true</EnvironmentVariable>
    </BuildMacro>
  </ItemGroup>
  <Target Name="GLSLValidate" Condition="'@(GLSLValidate)' != ''" AfterTargets="Compile" BeforeTargets="Link">
    <Message Text="Building GLSL Shaders..." Importance="High" />
    <ItemGroup>
      <GLSLValidate>
        <Message>%(Filename)%(Extension)</Message>
        <Command>if not exist "$(SolutionDir)assets\shaders\" mkdir $(SolutionDir)assets\shaders\
$(GLSLValidatorExe) -V "%(GLSLValidate.FullPath)" -o $(SolutionDir)assets\shaders\%(Filename).spv</Command>
        <Outputs>$(SolutionDir)assets\shaders\%(Filename).spv</Outputs>
      </GLSLValidate>
    </ItemGroup>
    <CustomBuild
      Sources="@(GLSLValidate)"
      MinimalRebuildFromTracking="true"
      TrackerLogDirectory="$(TLogLocation)"
      ErrorListRegex="(?'CATEGORY'ERROR|WARNING): (?'FILENAME'.+):(?'LINE'\d+): (?'TEXT'.*)">

     </CustomBuild>
  </Target>
</Project>

Я сейчас пытаюсь указать дополнительные зависимости, так как мои шейдеры GLSL включают в себя некоторые *.h файлы, и я хотел бы, чтобы шейдеры GLSL были перестроены, если какой-либо из заголовочных файлов был изменен.

Я пытался добавить

<AdditionalDependencies>$(SolutionDir)src\shaders\my_header_file.h</AdditionalDependencies>

в блок, но это не сработало. Я также попытался добавить

<AdditionalInputs>$(SolutionDir)src\shaders\my_header_file.h</AdditionalInputs>

но это тоже не сработало.

Обратите внимание, что в обоих случаях VS не жалуется на неизвестные элементы, поэтому, похоже, распознает их, но они не действуют.

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