-
-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
90 lines (90 loc) · 5.98 KB
/
Directory.Build.props
File metadata and controls
90 lines (90 loc) · 5.98 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?xml version="1.0" encoding="utf-8"?>
<Project>
<!-- Import parent Directory.Build.props if it exists (e.g., when running as submodule of Pro) -->
<Import Project="../Directory.Build.props" Condition="Exists('$(MSBuildThisFileDirectory)../Directory.Build.props')" />
<PropertyGroup>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CoreVersion>5.0.0.148</CoreVersion>
<Configurations>Debug;Release;SourceGen Highlighting</Configurations>
<Platforms>AnyCPU</Platforms>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<CoreProjectPath>$(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core</CoreProjectPath>
<!-- https://github.com/dotnet/aspnetcore/issues/64381 -->
<StaticWebAssetEndpointExclusionPattern>
$(StaticWebAssetEndpointExclusionPattern);js/**
</StaticWebAssetEndpointExclusionPattern>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsWindows())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'X64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/win-x64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsWindows())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'Arm64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/win-arm64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsMacOS())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'X64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/osx-x64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsMacOS())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'Arm64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/osx-arm64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsLinux())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'X64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/linux-x64</GBBuildToolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$([System.OperatingSystem]::IsLinux())' == 'true' and '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString())' == 'Arm64'">
<GBBuildToolsPath>$(MSBuildThisFileDirectory)build-tools/linux-arm64</GBBuildToolsPath>
</PropertyGroup>
<ItemGroup>
<Watch Remove="$(CoreProjectPath)\wwwroot\**\*;$(CoreProjectPath)\Scripts\**\*;**\esbuild*;$(CoreProjectPath)\node_modules\**\*" />
</ItemGroup>
<ItemGroup>
<CompilerVisibleProperty Include="Configuration" Value="$(GBBuildToolsPath)" />
<CompilerVisibleProperty Include="Configuration" Value="$(Configuration)" />
<CompilerVisibleProperty Include="DesignTimeBuild" Value="$(DesignTimeBuild)" />
<CompilerVisibleProperty Include="ShowScriptDialogs" Value="$(ShowScriptDialogs)" />
<CompilerVisibleProperty Include="CoreProjectPath" Value="$(CoreProjectPath)" />
<CompilerVisibleProperty Include="CoreProjectPath" Value="$(ProProjectPath)" />
</ItemGroup>
<!-- ESBuild Project Trigger: Must happen before RESTORE -->
<PropertyGroup>
<ESBuildLockFilePath>$(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core/esBuild.lock</ESBuildLockFilePath>
<ESBuildRemoveProps>
BuildProjectReferences;
Configuration;
EnableDefaultCompileItems;
EnableDefaultEmbeddedResourceItems;
EnableDefaultNoneItems;
ExcludeRestorePackageImports;
GBBuildToolsPath;
MSBuildIsRestoring;
MSBuildRestoreSessionId;
NugetInteractive;
Platform;
ShowScriptDialogs;
TargetFramework;
TargetFrameworks;
TriggerESBuild;
TriggerProESBuild
</ESBuildRemoveProps>
<ESBuildNonTriggeringProjects>
;dymaptic.GeoBlazor.Core.ESBuild;
;dymaptic.GeoBlazor.Pro.ESBuild;
;dymaptic.GeoBlazor.Pro.V;
</ESBuildNonTriggeringProjects>
</PropertyGroup>
<Target Name="TriggerESBuild" BeforeTargets="Restore;BeforeBuild" Condition="!$(ESBuildNonTriggeringProjects.Contains(';$(MSBuildProjectName);'))">
<!-- Atomically check-and-acquire the lock file; exit code 0 = acquired.
AcquireBuildLock also creates a .running marker file when the lock is acquired,
so other projects can wait for ESBuild to complete. -->
<Exec Command="dotnet "$(GBBuildToolsPath)/AcquireBuildLock.dll" "$(ESBuildLockFilePath)" 5" IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="_AcquireLockExitCode" />
</Exec>
<!-- Lock acquired: run ESBuild, then remove the .running marker -->
<Message Importance="high" Text="Triggering Core ESBuild from $(MSBuildProjectName)" Condition="'$(_AcquireLockExitCode)' == '0'" />
<Exec Command="dotnet restore $(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core.ESBuild/dymaptic.GeoBlazor.Core.ESBuild.csproj" Condition="'$(_AcquireLockExitCode)' == '0'" />
<MSBuild Projects="$(MSBuildThisFileDirectory)src/dymaptic.GeoBlazor.Core.ESBuild/dymaptic.GeoBlazor.Core.ESBuild.csproj" Properties="GBBuildToolsPath=$(GBBuildToolsPath);ShowScriptDialogs=$(ShowScriptDialogs)" RemoveProperties="$(ESBuildRemoveProps)" Condition="'$(_AcquireLockExitCode)' == '0'" />
<Delete Files="$(ESBuildLockFilePath).running" Condition="'$(_AcquireLockExitCode)' == '0'" />
<!-- Lock not acquired: another project is running ESBuild — wait for it to finish -->
<Exec Command="dotnet "$(GBBuildToolsPath)/WaitForBuildComplete.dll" "$(ESBuildLockFilePath).running" 120" Condition="'$(_AcquireLockExitCode)' != '0'" />
</Target>
</Project>