summaryrefslogtreecommitdiff
path: root/cpp/msbuild/ice.sign.targets
blob: 3e871ca69d78e952652c0569e5071aa947952889 (plain)
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
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="$(MSBuildThisFileDirectory)/../../config/ice.common.sign.targets" />
    <PropertyGroup>
        <SignTarget>$(OutDir)$(TargetName)$(TargetExt)</SignTarget>
    </PropertyGroup>

    <Target Name="SignPackage"
            Condition="Exists('$(SIGN_CERTIFICATE)') and (!Exists('$(IntDir)sign.log') or $([System.IO.File]::GetLastWriteTime('$(SignTarget)').Ticks) &gt; $([System.IO.File]::GetLastWriteTime('$(IntDir)sign.log').Ticks))">
        <Message Text="Signing $(SignTarget)" />

        <!-- Authenticode signing -->
        <SignTask
            WorkingDirectory="$(OutDir)"
            AdditionalOptions="$(SignCommandSHA1)"
            Files="$(TargetName)$(TargetExt)"/>

        <SignTask
            WorkingDirectory="$(OutDir)"
            AdditionalOptions="$(SignCommandSHA256)"
            Files="$(TargetName)$(TargetExt)"
            Condition="'$(DefaultPlatformToolset)' != 'v100'"/>

        <WriteLinesToFile File                = "$(IntDir)sign.log"
                          Encoding            = "Unicode"
                          Overwrite           = "true"
                          Lines               = "Signing $(SignTarget)"/>
    </Target>

    <Target Name="SignPackageClean" AfterTargets="Clean">
        <Delete Files="$(IntDir)sign.log" />
    </Target>

    <PropertyGroup>
        <BuildDependsOn>
            $(BuildDependsOn);
            SignPackage
        </BuildDependsOn>
    </PropertyGroup>
</Project>