mirror of
https://github.com/python/cpython.git
synced 2025-07-07 11:25:30 +00:00
58 lines
3.1 KiB
XML
58 lines
3.1 KiB
XML
<?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>
|