File: CustomBuildDepFile.targets

package info (click to toggle)
cmake 4.2.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 152,344 kB
  • sloc: ansic: 403,894; cpp: 303,807; sh: 4,097; python: 3,582; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 108; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (48 lines) | stat: -rw-r--r-- 3,010 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- Update AdditionalInputs with depfile-discovered inputs.  -->
  <Target Name="CMakeCustomBuildDepFileAdditionalInputs" BeforeTargets="CustomBuild" Condition="'@(CustomBuild)' != ''">
    <ItemGroup>
      <!-- Save original AdditionalInputs generated by CMake.  -->
      <CustomBuild>
        <CMakeAdditionalInputs>%(CustomBuild.AdditionalInputs)</CMakeAdditionalInputs>
      </CustomBuild>
      <!-- Read depfile-discovered inputs.  -->
      <CustomBuild Condition="Exists('%(CustomBuild.DepFileAdditionalInputsFile)')">
        <DepFileAdditionalInputs>$([System.IO.File]::ReadAllText('%(CustomBuild.DepFileAdditionalInputsFile)').TrimEnd())</DepFileAdditionalInputs>
      </CustomBuild>
      <!-- Add depfile-discovered inputs to AdditionalInputs.  -->
      <CustomBuild Condition="'%(CustomBuild.DepFileAdditionalInputs)' != ''">
        <AdditionalInputs Condition="'%(CustomBuild.AdditionalInputs)' == ''">%(CustomBuild.DepFileAdditionalInputs)</AdditionalInputs>
        <AdditionalInputs Condition="'%(CustomBuild.AdditionalInputs)' != ''">%(CustomBuild.AdditionalInputs);%(CustomBuild.DepFileAdditionalInputs)</AdditionalInputs>
      </CustomBuild>
    </ItemGroup>
  </Target>

  <!-- Update the tracking log with depfile-discovered inputs.  -->
  <Target Name="CMakeCustomBuildDepFileTrackingLog" AfterTargets="CustomBuild" Condition="'@(CustomBuild)' != ''">
    <!-- Compute the tracking log content for each CustomBuild item individually.  -->
    <ItemGroup>
      <!-- Read depfile-discovered inputs.  -->
      <CustomBuild Condition="Exists('%(CustomBuild.DepFileAdditionalInputsFile)')">
        <DepFileAdditionalInputs>$([System.IO.File]::ReadAllText('%(CustomBuild.DepFileAdditionalInputsFile)').TrimEnd())</DepFileAdditionalInputs>
      </CustomBuild>
      <!-- Generate tracking log representation of all inputs.  -->
      <CustomBuild>
        <ReadTLog>^%(CustomBuild.Identity)&#xD;&#xA;</ReadTLog>
      </CustomBuild>
      <CustomBuild Condition="'%(CustomBuild.CMakeAdditionalInputs)' != ''">
        <ReadTLog>%(ReadTLog)$([System.String]::Copy('%(CustomBuild.CMakeAdditionalInputs)').Trim(';').Replace(';', '&#xD;&#xA;'))&#xD;&#xA;</ReadTLog>
      </CustomBuild>
      <CustomBuild Condition="'%(CustomBuild.DepFileAdditionalInputs)' != ''">
        <ReadTLog>%(ReadTLog)$([System.String]::Copy('%(CustomBuild.DepFileAdditionalInputs)').Trim(';').Replace(';', '&#xD;&#xA;'))&#xD;&#xA;</ReadTLog>
      </CustomBuild>
    </ItemGroup>
    <!-- Compute the combined tracking log for all CustomBuild items together.  -->
    <PropertyGroup>
      <CustomBuildReadTLog>@(CustomBuild->'%(ReadTLog)','')</CustomBuildReadTLog>
    </PropertyGroup>
    <!-- Replace the combined tracking log on disk.  -->
    <WriteLinesToFile File="$(TLogLocation)CustomBuild.read.1.tlog" Overwrite="true" Lines="$(CustomBuildReadTLog.ToUpper())" />
  </Target>
</Project>