Allow platform specific eBPF nuget packages to be created (#3892)

* Allow platform specific eBPF nuget packages to be created

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* Specify version in output

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

---------

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
This commit is contained in:
Alan Jowett 2024-10-02 11:56:45 -07:00 коммит произвёл GitHub
Родитель 8743c34ab3
Коммит f5195ecf63
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
4 изменённых файлов: 24 добавлений и 18 удалений

Просмотреть файл

@ -1,7 +1,7 @@
# Copyright (c) eBPF for Windows contributors
# SPDX-License-Identifier: MIT
param ($InputFile, $OutputFile, [parameter(Mandatory=$false)]$VCToolsRedistDir)
param ($InputFile, $OutputFile, [parameter(Mandatory=$false)]$VCToolsRedistDir, [parameter(Mandatory=$false)]$architecture)
# The git commit ID is in the include directory and is in the format:
# #define GIT_COMMIT_ID "some commit id"
@ -13,4 +13,5 @@ $content = Get-Content $InputFile
$content = $content.Replace("{version}", $version)
$content = $content.Replace("{VCToolsRedistDir}", $VCToolsRedistDir)
$content = $content.Replace("{git_commit_id}", $git_commit_id)
$content = $content.Replace("{architecture}", $architecture)
set-content $OutputFile $content

Просмотреть файл

@ -5,7 +5,7 @@
<package>
<metadata>
<title>eBPF for Windows SDK</title>
<id>eBPF-for-Windows</id>
<id>eBPF-for-Windows.{architecture}</id>
<version>{version}</version>
<authors>eBPF for Windows Contributors</authors>
<owners>eBPF for Windows Contributors</owners>
@ -19,7 +19,7 @@
</metadata>
<files>
<file src="..\..\tools\nuget\README.md" target="."/>
<file src="..\..\tools\nuget\ebpf-for-windows.props" target="build\native"/>
<file src="ebpf-for-windows.{architecture}.props" target="build\native"/>
<file src="Convert-BpfToNative.ps1" target="build\native\bin"/>
<file src="bpf2c.exe" target="build\native\bin"/>
<file src="bpf2c.pdb" target="build\native\bin"/>

Просмотреть файл

@ -4,16 +4,28 @@
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="15.0">
<ItemGroup>
<!-- Translate processor architecture into the Platform version that VC uses. -->
<PropertyGroup Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64'">
<HostPlatform>x64</HostPlatform>
</PropertyGroup>
<PropertyGroup Condition="'$(PROCESSOR_ARCHITECTURE)'=='ARM64'">
<HostPlatform>ARM64</HostPlatform>
</PropertyGroup>
<ItemGroup Condition="'$(Platform)'=='{architecture}'">
<EbpfLibs Include="$(MSBuildThisFileDirectory)\lib\*.lib" />
</ItemGroup>
<PropertyGroup>
<!-- Set the platform dependent variables. -->
<PropertyGroup Condition="'$(Platform)'=='{architecture}'">
<EbpfLibraries>@(EbpfLibs)</EbpfLibraries>
<ClangIncludes>-I $(MSBuildThisFileDirectory)include -I $(MSBuildThisFileDirectory)include/uapi</ClangIncludes>
<EbpfBinPath>$(MSBuildThisFileDirectory)bin</EbpfBinPath>
<EbpfIncludePath>$(MSBuildThisFileDirectory)include</EbpfIncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<!-- Set the host dependent variables. -->
<PropertyGroup Condition="'$(HostPlatform)'=='{architecture}'">
<EbpfHostBinPath>$(MSBuildThisFileDirectory)bin</EbpfHostBinPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='{architecture}'">
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)include;$(MSBuildThisFileDirectory)include/uapi</AdditionalIncludeDirectories>
</ClCompile>

Просмотреть файл

@ -194,18 +194,11 @@ popd $(OutDir)</Command>
<ItemGroup>
<CustomBuild Include="ebpf-for-windows.nuspec.in">
<FileType>Document</FileType>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">powershell -NonInteractive -ExecutionPolicy Unrestricted $(SolutionDir)scripts\Set-Version.ps1 -InputFile $(SolutionDir)tools\nuget\ebpf-for-windows.nuspec.in -OutputFile $(OutDir)ebpf-for-windows.nuspec
NuGet.exe pack $(OutDir)ebpf-for-windows.nuspec -OutputDirectory $(OutDir)</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='NativeOnlyDebug|x64'">powershell -NonInteractive -ExecutionPolicy Unrestricted $(SolutionDir)scripts\Set-Version.ps1 -InputFile $(SolutionDir)tools\nuget\ebpf-for-windows.nuspec.in -OutputFile $(OutDir)ebpf-for-windows.nuspec
NuGet.exe pack $(OutDir)ebpf-for-windows.nuspec -OutputDirectory $(OutDir)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">eBPF-for-Windows.2022.4.22.nupkg</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='NativeOnlyDebug|x64'">eBPF-for-Windows.2022.4.22.nupkg</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">eBPF-for-Windows.2022.4.22.nupkg</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='NativeOnlyRelease|x64'">eBPF-for-Windows.2022.4.22.nupkg</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">powershell -NonInteractive -ExecutionPolicy Unrestricted $(SolutionDir)scripts\Set-Version.ps1 -InputFile $(SolutionDir)tools\nuget\ebpf-for-windows.nuspec.in -OutputFile $(OutDir)ebpf-for-windows.nuspec
NuGet.exe pack $(OutDir)ebpf-for-windows.nuspec -OutputDirectory $(OutDir)</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='NativeOnlyRelease|x64'">powershell -NonInteractive -ExecutionPolicy Unrestricted $(SolutionDir)scripts\Set-Version.ps1 -InputFile $(SolutionDir)tools\nuget\ebpf-for-windows.nuspec.in -OutputFile $(OutDir)ebpf-for-windows.nuspec
NuGet.exe pack $(OutDir)ebpf-for-windows.nuspec -OutputDirectory $(OutDir)</Command>
<Outputs>$(OutDir)eBPF-for-Windows.$(Platform).0.20.0.nupkg</Outputs>
<Command>
powershell -NonInteractive -ExecutionPolicy Unrestricted $(SolutionDir)scripts\Set-Version.ps1 -InputFile $(SolutionDir)tools\nuget\ebpf-for-windows.nuspec.in -OutputFile $(OutDir)ebpf-for-windows.$(Platform).nuspec -Architecture $(Platform)
powershell -NonInteractive -ExecutionPolicy Unrestricted $(SolutionDir)scripts\Set-Version.ps1 -InputFile $(SolutionDir)tools\nuget\ebpf-for-windows.props.in -OutputFile $(OutDir)ebpf-for-windows.$(Platform).props -Architecture $(Platform)
NuGet.exe pack $(OutDir)ebpf-for-windows.$(Platform).nuspec -OutputDirectory $(OutDir)</Command>
</CustomBuild>
</ItemGroup>
<ItemGroup>