126 lines
7.5 KiB
XML
126 lines
7.5 KiB
XML
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup>
|
|
<M42BasePackageAssembliesDir Condition="'$(M42BasePackageAssembliesDir)' == ''">$(MSBuildProjectDirectory)\BasePackage\Assemblies</M42BasePackageAssembliesDir>
|
|
<M42RootAssembliesDir Condition="'$(M42RootAssembliesDir)' == '' AND '$(M42ExtensionId)' != ''">$(MSBuildProjectDirectory)\Root\InstalledPackages\Assemblies\$(M42ExtensionId)</M42RootAssembliesDir>
|
|
<M42AssemblyPattern Condition="'$(M42AssemblyPattern)' == ''">$(MSBuildProjectName)*.*</M42AssemblyPattern>
|
|
<M42DefaultRids Condition="'$(M42DefaultRids)' == ''">win-x64;linux-x64</M42DefaultRids>
|
|
<M42PackageName Condition="'$(M42PackageName)' == ''">C4IT - F4SD M42 ESM Integration Configuration Package</M42PackageName>
|
|
<M42PackageTemplateDir Condition="'$(M42PackageTemplateDir)' == ''">$(MSBuildProjectDirectory)\..\PackageTemplate</M42PackageTemplateDir>
|
|
<M42PackageOutputRoot Condition="'$(M42PackageOutputRoot)' == ''">$(MSBuildProjectDirectory)\..\artifacts\$(Configuration)</M42PackageOutputRoot>
|
|
<M42PackageBuildScript Condition="'$(M42PackageBuildScript)' == ''">$(MSBuildProjectDirectory)\BuildM42Package.ps1</M42PackageBuildScript>
|
|
<M42SignAssemblies Condition="'$(M42SignAssemblies)' == ''">false</M42SignAssemblies>
|
|
<M42SignTool Condition="'$(M42SignTool)' == ''">$(MSBuildProjectDirectory)\..\..\..\Common Code\Tools\signtool.exe</M42SignTool>
|
|
<M42SignTimestampUrl Condition="'$(M42SignTimestampUrl)' == ''">http://rfc3161timestamp.globalsign.com/advanced</M42SignTimestampUrl>
|
|
<M42SignDescription Condition="'$(M42SignDescription)' == ''">C4IT - F4SD - WebApi for M42</M42SignDescription>
|
|
<M42SignOptions Condition="'$(M42SignOptions)' == ''">/a</M42SignOptions>
|
|
<_M42SignCertificateArgs Condition="'$(M42SignCertificateFile)' != '' AND '$(M42SignCertificatePassword)' != ''">/f "$(M42SignCertificateFile)" /p "$(M42SignCertificatePassword)"</_M42SignCertificateArgs>
|
|
<_M42SignCertificateArgs Condition="'$(M42SignCertificateFile)' != '' AND '$(M42SignCertificatePassword)' == ''">/f "$(M42SignCertificateFile)"</_M42SignCertificateArgs>
|
|
<_M42SignCertificateArgs Condition="'$(_M42SignCertificateArgs)' == '' AND '$(M42SignCertificateThumbprint)' != ''">/sha1 "$(M42SignCertificateThumbprint)"</_M42SignCertificateArgs>
|
|
<_M42SignCertificateArgs Condition="'$(_M42SignCertificateArgs)' == ''">$(M42SignOptions)</_M42SignCertificateArgs>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="M42_BuildAllRids"
|
|
BeforeTargets="Build"
|
|
Condition="'$(RuntimeIdentifier)' == '' AND '$(M42SkipBuildAllRids)' != 'true'">
|
|
<ItemGroup>
|
|
<_M42RidList Include="$(M42DefaultRids)" />
|
|
</ItemGroup>
|
|
|
|
<MSBuild Projects="$(MSBuildProjectFullPath)"
|
|
Targets="Restore;Build"
|
|
Properties="RuntimeIdentifier=%(_M42RidList.Identity);Configuration=$(Configuration);AppendRuntimeIdentifierToOutputPath=true;M42SkipBuildAllRids=true"
|
|
BuildInParallel="true" />
|
|
|
|
<PropertyGroup>
|
|
<SkipBuild>true</SkipBuild>
|
|
</PropertyGroup>
|
|
</Target>
|
|
|
|
<Target Name="M42_PostBuild_CopyRidless"
|
|
AfterTargets="Build"
|
|
Condition="'$(RuntimeIdentifier)' == ''">
|
|
<Delete Files="$(TargetDir)$(AssemblyName).dll.host" />
|
|
<Delete Files="$(M42BasePackageAssembliesDir)\$(AssemblyName).dll.host" />
|
|
<Delete Files="$(M42RootAssembliesDir)\$(AssemblyName).dll.host"
|
|
Condition="'$(M42RootAssembliesDir)' != ''" />
|
|
|
|
<ItemGroup>
|
|
<_M42FlatRoot Include="$(TargetDir)$(M42AssemblyPattern)" />
|
|
</ItemGroup>
|
|
|
|
<MakeDir Directories="$(M42BasePackageAssembliesDir)" />
|
|
<MakeDir Directories="$(M42RootAssembliesDir)" Condition="'$(M42RootAssembliesDir)' != ''" />
|
|
|
|
<Copy SourceFiles="@(_M42FlatRoot)"
|
|
DestinationFolder="$(M42BasePackageAssembliesDir)"
|
|
SkipUnchangedFiles="true" />
|
|
<Copy SourceFiles="@(_M42FlatRoot)"
|
|
DestinationFolder="$(M42RootAssembliesDir)"
|
|
SkipUnchangedFiles="true"
|
|
Condition="'$(M42RootAssembliesDir)' != ''" />
|
|
</Target>
|
|
|
|
<Target Name="M42_PostBuild_CopyRid"
|
|
AfterTargets="Build"
|
|
Condition="'$(RuntimeIdentifier)' != ''">
|
|
<Delete Files="$(TargetDir)$(AssemblyName).dll.host" />
|
|
<Delete Files="$(M42BasePackageAssembliesDir)\$(RuntimeIdentifier)\$(AssemblyName).dll.host" />
|
|
<Delete Files="$(M42RootAssembliesDir)\$(RuntimeIdentifier)\$(AssemblyName).dll.host"
|
|
Condition="'$(M42RootAssembliesDir)' != ''" />
|
|
|
|
<ItemGroup>
|
|
<_M42Rid Include="$(TargetDir)**\$(M42AssemblyPattern)" />
|
|
</ItemGroup>
|
|
|
|
<MakeDir Directories="$(M42BasePackageAssembliesDir)\$(RuntimeIdentifier)" />
|
|
<MakeDir Directories="$(M42RootAssembliesDir)\$(RuntimeIdentifier)" Condition="'$(M42RootAssembliesDir)' != ''" />
|
|
|
|
<Copy SourceFiles="@(_M42Rid)"
|
|
DestinationFolder="$(M42BasePackageAssembliesDir)\$(RuntimeIdentifier)\%(RecursiveDir)"
|
|
SkipUnchangedFiles="true" />
|
|
<Copy SourceFiles="@(_M42Rid)"
|
|
DestinationFolder="$(M42RootAssembliesDir)\$(RuntimeIdentifier)\%(RecursiveDir)"
|
|
SkipUnchangedFiles="true"
|
|
Condition="'$(M42RootAssembliesDir)' != ''" />
|
|
</Target>
|
|
|
|
<Target Name="M42_SignPackageAssemblies"
|
|
BeforeTargets="M42_BuildPackage"
|
|
Condition="'$(RuntimeIdentifier)' == '' AND '$(M42SignAssemblies)' == 'true'">
|
|
<ItemGroup>
|
|
<_M42AssembliesToSign Include="$(M42BasePackageAssembliesDir)\**\*.dll" />
|
|
</ItemGroup>
|
|
|
|
<Error Condition="!Exists('$(M42SignTool)')"
|
|
Text="signtool.exe was not found: $(M42SignTool). Set M42SignTool or disable signing with /p:M42SignAssemblies=false." />
|
|
|
|
<Message Importance="High"
|
|
Text="Signing Matrix42 package assemblies with $(M42SignTool)." />
|
|
|
|
<Exec Condition="'@(_M42AssembliesToSign)' != ''"
|
|
Command=""$(M42SignTool)" sign $(_M42SignCertificateArgs) /tr "$(M42SignTimestampUrl)" /td SHA256 /fd SHA256 /d "$(M42SignDescription)" "%(_M42AssembliesToSign.FullPath)"" />
|
|
</Target>
|
|
|
|
<Target Name="M42_BuildPackage"
|
|
AfterTargets="Build"
|
|
Condition="'$(RuntimeIdentifier)' == '' AND '$(M42BuildPackage)' == 'true'">
|
|
<Error Condition="!Exists('$(M42PackageTemplateDir)\package.json')"
|
|
Text="M42 package template not found: $(M42PackageTemplateDir)" />
|
|
<Error Condition="!Exists('$(M42BasePackageAssembliesDir)\C4ITF4SDM42WebApi.dll')"
|
|
Text="M42 base package assemblies are missing: $(M42BasePackageAssembliesDir)" />
|
|
|
|
<GetAssemblyIdentity AssemblyFiles="$(M42BasePackageAssembliesDir)\C4ITF4SDM42WebApi.dll">
|
|
<Output TaskParameter="Assemblies" ItemName="_M42PackageAssemblyIdentity" />
|
|
</GetAssemblyIdentity>
|
|
|
|
<PropertyGroup>
|
|
<_M42PackageAssemblyVersion>@(_M42PackageAssemblyIdentity->'%(Version)')</_M42PackageAssemblyVersion>
|
|
</PropertyGroup>
|
|
|
|
<Error Condition="'$(_M42PackageAssemblyVersion)' == ''"
|
|
Text="Could not read AssemblyVersion from $(M42BasePackageAssembliesDir)\C4ITF4SDM42WebApi.dll." />
|
|
|
|
<Exec Command="powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$(M42PackageBuildScript)" -TemplateDir "$(M42PackageTemplateDir)" -AssembliesDir "$(M42BasePackageAssembliesDir)" -OutputRoot "$(M42PackageOutputRoot)" -PackageName "$(M42PackageName)" -PackageVersion "$(_M42PackageAssemblyVersion)"" />
|
|
</Target>
|
|
</Project>
|