mirror of https://github.com/kdl-org/kdl-rs.git
179 lines
8.2 KiB
Plaintext
179 lines
8.2 KiB
Plaintext
// Based on https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Clients/NuGet.CommandLine/NuGet.CommandLine.csproj
|
|
Project {
|
|
PropertyGroup {
|
|
IsCommandLinePackage #true
|
|
}
|
|
|
|
Import Project=#"$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'README.md'))\build\common.props"#
|
|
Import Project=Sdk.props Sdk=Microsoft.NET.Sdk
|
|
Import Project=ilmerge.props
|
|
|
|
PropertyGroup {
|
|
RootNamespace NuGet.CommandLine
|
|
AssemblyName NuGet
|
|
AssemblyTitle "NuGet Command Line"
|
|
PackageId NuGet.CommandLine
|
|
TargetFramework "$(NETFXTargetFramework)"
|
|
GenerateDocumentationFile #false
|
|
Description "NuGet Command Line Interface."
|
|
ApplicationManifest app.manifest
|
|
Shipping #true
|
|
OutputType Exe
|
|
ComVisible #false
|
|
// Pack properties
|
|
PackProject #true
|
|
IncludeBuildOutput #false
|
|
TargetsForTfmSpecificContentInPackage "$(TargetsForTfmSpecificContentInPackage)" "CreateCommandlineNupkg"
|
|
SuppressDependenciesWhenPacking #true
|
|
DevelopmentDependency #true
|
|
PackageRequireLicenseAcceptance #false
|
|
UsePublicApiAnalyzer #false
|
|
}
|
|
|
|
Target Name=CreateCommandlineNupkg {
|
|
ItemGroup {
|
|
TfmSpecificPackageFile Include=#"$(ArtifactsDirectory)$(VsixOutputDirName)\NuGet.exe"# {
|
|
PackagePath "tools/"
|
|
}
|
|
TfmSpecificPackageFile Include=#"$(ArtifactsDirectory)$(VsixOutputDirName)\NuGet.pdb"# {
|
|
PackagePath "tools/"
|
|
}
|
|
}
|
|
}
|
|
|
|
ItemGroup Condition="$(DefineConstants.Contains(SIGNED_BUILD))" {
|
|
AssemblyAttribute Include=System.Runtime.CompilerServices.InternalsVisibleTo {
|
|
_Parameter1 "NuGet.CommandLine.FuncTest, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293"
|
|
}
|
|
AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo" {
|
|
_Parameter1 "NuGet.CommandLine.Test, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293"
|
|
}
|
|
}
|
|
|
|
ItemGroup Condition="!$(DefineConstants.Contains(SIGNED_BUILD))" {
|
|
AssemblyAttribute Include=System.Runtime.CompilerServices.InternalsVisibleTo {
|
|
_Parameter1 NuGet.CommandLine.FuncTest
|
|
}
|
|
AssemblyAttribute Include=System.Runtime.CompilerServices.InternalsVisibleTo {
|
|
_Parameter1 NuGet.CommandLine.Test
|
|
}
|
|
}
|
|
|
|
ItemGroup Condition="$(DefineConstants.Contains(SIGNED_BUILD))" {
|
|
AssemblyAttribute Include=System.Runtime.CompilerServices.InternalsVisibleTo {
|
|
_Parameter1 "NuGet.CommandLine.Test, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293"
|
|
}
|
|
}
|
|
|
|
ItemGroup Condition="!$(DefineConstants.Contains(SIGNED_BUILD))" {
|
|
AssemblyAttribute Include=System.Runtime.CompilerServices.InternalsVisibleTo {
|
|
_Parameter1 NuGet.CommandLine.Test
|
|
}
|
|
}
|
|
|
|
ItemGroup {
|
|
Reference Include=Microsoft.Build.Utilities.v4.0
|
|
Reference Include=Microsoft.CSharp
|
|
Reference Include=System
|
|
Reference Include=System.ComponentModel.Composition
|
|
Reference Include=System.ComponentModel.Composition.Registration
|
|
Reference Include=System.ComponentModel.DataAnnotations
|
|
Reference Include=System.IO.Compression
|
|
Reference Include=System.Net.Http
|
|
Reference Include=System.Xml
|
|
Reference Include=System.Xml.Linq
|
|
Reference Include=NuGet.Core {
|
|
HintPath #"$(SolutionPackagesFolder)nuget.core\2.14.0-rtm-832\lib\net40-Client\NuGet.Core.dll"#
|
|
Aliases CoreV2
|
|
}
|
|
}
|
|
ItemGroup {
|
|
PackageReference Include=Microsoft.VisualStudio.Setup.Configuration.Interop
|
|
ProjectReference Include=#"$(NuGetCoreSrcDirectory)NuGet.PackageManagement\NuGet.PackageManagement.csproj"#
|
|
ProjectReference Include=#"$(NuGetCoreSrcDirectory)NuGet.Build.Tasks\NuGet.Build.Tasks.csproj"#
|
|
}
|
|
|
|
ItemGroup {
|
|
EmbeddedResource Update=NuGetCommand.resx {
|
|
Generator ResXFileCodeGenerator
|
|
LastGenOutput NuGetCommand.Designer.cs
|
|
}
|
|
Compile Update=NuGetCommand.Designer.cs {
|
|
DesignTime #true
|
|
AutoGen #true
|
|
DependentUpon NuGetCommand.resx
|
|
}
|
|
EmbeddedResource Update=NuGetResources.resx {
|
|
// Strings are shared by other projects, use public strings.
|
|
Generator PublicResXFileCodeGenerator
|
|
LastGenOutput NuGetResources.Designer.cs
|
|
}
|
|
Compile Update=NuGetResources.Designer.cs {
|
|
DesignTime #true
|
|
AutoGen #true
|
|
DependentUpon NuGetResources.resx
|
|
}
|
|
}
|
|
|
|
ItemGroup {
|
|
EmbeddedResource Include=#"$(NuGetCoreSrcDirectory)NuGet.Build.Tasks\NuGet.targets"# {
|
|
Link NuGet.targets
|
|
SubType Designer
|
|
}
|
|
}
|
|
|
|
// Since we are moving some code and strings from NuGet.CommandLine to NuGet.Commands, we opted to go through normal localization process (build .resources.dll) and then add them to the ILMerged nuget.exe
|
|
// This will also be called from CI build, after assemblies are localized, since our test infra takes nuget.exe before Localization
|
|
Target Name=ILMergeNuGetExe \
|
|
AfterTargets=Build \
|
|
Condition="'$(BuildingInsideVisualStudio)' != 'true' and '$(SkipILMergeOfNuGetExe)' != 'true'" \
|
|
{
|
|
PropertyGroup {
|
|
// when done after build, no localizedartifacts are built yet, so expected localized artifact count is 0.
|
|
ExpectedLocalizedArtifactCount 0 Condition="'$(ExpectedLocalizedArtifactCount)' == ''"
|
|
}
|
|
ItemGroup {
|
|
BuildArtifacts Include=#"$(OutputPath)\*.dll"# Exclude="@(MergeExclude)"
|
|
// NuGet.exe needs all NuGet.Commands.resources.dll merged in
|
|
LocalizedArtifacts Include=#"$(ArtifactsDirectory)\NuGet.Commands\**\$(NETFXTargetFramework)\**\*.resources.dll"#
|
|
}
|
|
Error Text="Build dependencies are inconsistent with mergeinclude specified in ilmerge.props" \
|
|
Condition="'@(BuildArtifacts->Count())' != '@(MergeInclude->Count())'"
|
|
Error Text="Satellite assemblies count ILMerged into NuGet.exe should be $(ExpectedLocalizedArtifactCount), but was: @(LocalizedArtifacts->Count())" \
|
|
Condition="'@(LocalizedArtifacts->Count())' != '$(ExpectedLocalizedArtifactCount)'"
|
|
PropertyGroup {
|
|
PathToBuiltNuGetExe "$(OutputPath)NuGet.exe"
|
|
IlmergeCommand #"$(ILMergeExePath) /lib:$(OutputPath) /out:$(ArtifactsDirectory)$(VsixOutputDirName)\NuGet.exe @(MergeAllowDup -> '/allowdup:%(Identity)', ' ') /log:$(OutputPath)IlMergeLog.txt"#
|
|
IlmergeCommand Condition="Exists($(MS_PFX_PATH))" "$(IlmergeCommand) /delaysign /keyfile:$(MS_PFX_PATH)"
|
|
// LocalizedArtifacts need fullpath, since there will be duplicate file names
|
|
IlmergeCommand "$(IlmergeCommand) $(PathToBuiltNuGetExe) @(BuildArtifacts->'%(filename)%(extension)', ' ') @(LocalizedArtifacts->'%(fullpath)', ' ')"
|
|
}
|
|
MakeDir Directories="$(ArtifactsDirectory)$(VsixOutputDirName)"
|
|
Exec Command="$(IlmergeCommand)" ContinueOnError=#false
|
|
}
|
|
|
|
Import Project="$(BuildCommonDirectory)common.targets"
|
|
Import Project="$(BuildCommonDirectory)embedinterop.targets"
|
|
|
|
// Do nothing. This basically strips away the framework assemblies from the resulting nuspec.
|
|
Target Name=_GetFrameworkAssemblyReferences DependsOnTargets=ResolveReferences
|
|
|
|
Target Name=GetSigningInputs Returns="@(DllsToSign)" {
|
|
ItemGroup {
|
|
DllsToSign Include=#"$(ArtifactsDirectory)$(VsixOutputDirName)\NuGet.exe"# {
|
|
StrongName MsSharedLib72
|
|
Authenticode Microsoft400
|
|
}
|
|
}
|
|
}
|
|
|
|
Target Name=GetSymbolsToIndex Returns="@(SymbolsToIndex)" {
|
|
ItemGroup {
|
|
SymbolsToIndex Include=#"$(ArtifactsDirectory)$(VsixOutputDirName)\NuGet.exe"#
|
|
SymbolsToIndex Include=#"$(ArtifactsDirectory)$(VsixOutputDirName)\NuGet.pdb"#
|
|
}
|
|
}
|
|
|
|
Import Project=Sdk.targets Sdk=Microsoft.NET.Sdk
|
|
}
|