File: pyproject-clangcl.props

package info (click to toggle)
python3.14 3.14.0~rc1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 126,824 kB
  • sloc: python: 745,274; ansic: 713,752; xml: 31,250; sh: 5,822; cpp: 4,063; makefile: 1,988; objc: 787; lisp: 502; javascript: 136; asm: 75; csh: 12
file content (58 lines) | stat: -rw-r--r-- 3,278 bytes parent folder | download
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
49
50
51
52
53
54
55
56
57
58
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Label="Globals">
    <__PyprojectClangCl_Props_Imported>true</__PyprojectClangCl_Props_Imported>
  </PropertyGroup>

  <PropertyGroup>
    <!-- CLANG_PROFILE_PATH is configurable for "remote PGO builds"
         For convenience, we also accept paths without trailing slashes.
    -->
    <CLANG_PROFILE_PATH Condition="'$(CLANG_PROFILE_PATH)' == ''">$(OutDir)</CLANG_PROFILE_PATH>
    <_CLANG_PROFILE_PATH>$(CLANG_PROFILE_PATH)</_CLANG_PROFILE_PATH>
    <_CLANG_PROFILE_PATH Condition="!HasTrailingSlash($(_CLANG_PROFILE_PATH))">$(_CLANG_PROFILE_PATH)\</_CLANG_PROFILE_PATH>
  </PropertyGroup>

  <ItemGroup>
    <_profrawFiles Include="$(OutDir)instrumented\$(TargetName)_*.profraw" />
  </ItemGroup>

  <Target Name="EnsureClangProfileData" BeforeTargets="PrepareForBuild"
          Condition="'$(SupportPGO)' and $(Configuration) == 'PGUpdate'">
    <Error Text="PGO run did not succeed (no $(TargetName)_*.profraw files) and there is no data to merge"
           Condition="$(RequireProfileData) == 'true' and @(_profrawFiles) == ''" />
  </Target>

  <Target Name="MergeClangProfileData" BeforeTargets="PrepareForBuild"
          Condition="'$(SupportPGO)' and $(Configuration) == 'PGUpdate'"
          Inputs="@(_profrawFiles)"
          Outputs="$(OutDir)instrumented\profdata.profdata">
    <Exec
      Command='"$(LLVMInstallDir)\bin\llvm-profdata.exe" merge -output="$(OutDir)instrumented\profdata.profdata" "$(OutDir)instrumented\*_*.profraw"' />
  </Target>

  <Target Name="CleanClangProfileData" BeforeTargets="Clean">
    <Delete Files="@(_profrawFiles)" TreatErrorsAsWarnings="true" />
    <Delete Files="$(OutDir)instrumented\profdata.profdata" TreatErrorsAsWarnings="true" />
  </Target>

  <ItemDefinitionGroup>
    <ClCompile>
      <!--
      ExceptionHandling=Async sets MSVC's /EHa (-fasync-exceptions in clang)
      For clang, /EHa just has a slightly different meaning compared to MSVC,
      so this option is needed to handle SEH correctly
      (even though MSVC does not need it).
      Please see GH-131691 for details.
      -->
      <ExceptionHandling>Async</ExceptionHandling>
      <AdditionalOptions>-Wno-pointer-sign -Wno-incompatible-pointer-types-discards-qualifiers -Wno-unused-function %(AdditionalOptions)</AdditionalOptions>
      <AdditionalOptions Condition="'$(Platform)' == 'Win32'">-m32 %(AdditionalOptions)</AdditionalOptions>
      <AdditionalOptions Condition="'$(Platform)' == 'x64'">-m64 %(AdditionalOptions)</AdditionalOptions>
      <AdditionalOptions Condition="$(Configuration) != 'Debug'">-flto=thin %(AdditionalOptions)</AdditionalOptions>
      <AdditionalOptions Condition="$(SupportPGO) and $(Configuration) == 'PGInstrument'">-fprofile-instr-generate=$(_CLANG_PROFILE_PATH)$(TargetName)_%m.profraw %(AdditionalOptions)</AdditionalOptions>
      <AdditionalOptions Condition="$(SupportPGO) and $(Configuration) == 'PGUpdate'">-fprofile-instr-use=$(OutDir)instrumented\profdata.profdata -Wno-profile-instr-unprofiled %(AdditionalOptions)</AdditionalOptions>
    </ClCompile>
  </ItemDefinitionGroup>

</Project>