Skip to content

Commit b11d766

Browse files
Beyleysilkdotnetdotnet-bot
authored
Add SPIRV-Cross bindings (#1479)
* Add SPIRV-Cross bindings * Add CI job to create SPIRV-Cross native libraries * New binaries for SPIRV-Cross on Linux 5.15.0-1037-azure #44-Ubuntu SMP Thu Apr 20 13:19:31 UTC 2023 (#1481) Co-authored-by: The Silk.NET Automaton <[email protected]> * Enable the whole C API, export symbols, and NDEBUG * New binaries for SPIRV-Cross on Linux 5.15.0-1037-azure #44-Ubuntu SMP Thu Apr 20 13:19:31 UTC 2023 (#1482) Co-authored-by: The Silk.NET Automaton <[email protected]> --------- Co-authored-by: silkdotnet <[email protected]> Co-authored-by: The Silk.NET Automaton <[email protected]>
1 parent be7bb47 commit b11d766

File tree

70 files changed

+5111
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+5111
-0
lines changed

.github/workflows/spirv-cross.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: SPIRV-Cross
2+
on:
3+
push:
4+
branches-ignore:
5+
- "ci/*"
6+
- "develop/*"
7+
- "main"
8+
paths:
9+
- "build/submodules/SPIRV-Cross"
10+
- "build/nuke/Build.Native.cs"
11+
- ".github/workflows/spirv-cross.yml"
12+
jobs:
13+
Build:
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
env:
18+
- os: ubuntu-latest
19+
name: Linux
20+
nuke_invoke: ./build.sh
21+
extras: |
22+
sudo apt-get update
23+
sudo apt-get install -y build-essential
24+
name: ${{ matrix.env.name }} Build
25+
runs-on: ${{ matrix.env.os }}
26+
steps:
27+
- uses: actions/checkout@v2
28+
with:
29+
token: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
30+
- name: Checkout submodules, configure git
31+
run: |
32+
git submodule update --init --recursive --depth 0 build/submodules/SPIRV-Cross
33+
git config --local user.email "[email protected]"
34+
git config --local user.name "The Silk.NET Automaton"
35+
- name: Extra prerequisites
36+
run: |
37+
echo running extras
38+
${{ matrix.env.extras }}
39+
- name: Install Zig
40+
uses: goto-bus-stop/setup-zig@v2
41+
- name: Setup .NET 6.0 and .NET 7.0
42+
uses: actions/setup-dotnet@v1
43+
with:
44+
dotnet-version: |
45+
6.0.201
46+
7.0.*
47+
- name: Build SPIRV-Cross
48+
run: ${{ matrix.env.nuke_invoke }} SPIRVCross
49+
env:
50+
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }}
51+

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@
4343
[submodule "build/submodules/SPIRV-Headers"]
4444
path = build/submodules/SPIRV-Headers
4545
url = https://github.com/KhronosGroup/SPIRV-Headers
46+
[submodule "build/submodules/SPIRV-Cross"]
47+
path = build/submodules/SPIRV-Cross
48+
url = https://github.com/KhronosGroup/SPIRV-Cross

Silk.NET.sln

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SPIRV.Reflect.Test
586586
EndProject
587587
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.Vulkan.Extensions.MSFT", "src\Vulkan\Extensions\Silk.NET.Vulkan.Extensions.MSFT\Silk.NET.Vulkan.Extensions.MSFT.csproj", "{22DA5C34-2859-4599-97DA-9F9E3B7CEEA4}"
588588
EndProject
589+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SPIRV.Cross", "src\SPIRV\Silk.NET.SPIRV.Cross\Silk.NET.SPIRV.Cross.csproj", "{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}"
590+
EndProject
591+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Silk.NET.SPIRV.Cross.Native", "src\Native\Silk.NET.SPIRV.Cross.Native\Silk.NET.SPIRV.Cross.Native.csproj", "{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}"
592+
EndProject
589593
Global
590594
GlobalSection(SolutionConfigurationPlatforms) = preSolution
591595
Debug|Any CPU = Debug|Any CPU
@@ -3559,6 +3563,30 @@ Global
35593563
{22DA5C34-2859-4599-97DA-9F9E3B7CEEA4}.Release|x64.Build.0 = Release|Any CPU
35603564
{22DA5C34-2859-4599-97DA-9F9E3B7CEEA4}.Release|x86.ActiveCfg = Release|Any CPU
35613565
{22DA5C34-2859-4599-97DA-9F9E3B7CEEA4}.Release|x86.Build.0 = Release|Any CPU
3566+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3567+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Debug|Any CPU.Build.0 = Debug|Any CPU
3568+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Debug|x64.ActiveCfg = Debug|Any CPU
3569+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Debug|x64.Build.0 = Debug|Any CPU
3570+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Debug|x86.ActiveCfg = Debug|Any CPU
3571+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Debug|x86.Build.0 = Debug|Any CPU
3572+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Release|Any CPU.ActiveCfg = Release|Any CPU
3573+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Release|Any CPU.Build.0 = Release|Any CPU
3574+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Release|x64.ActiveCfg = Release|Any CPU
3575+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Release|x64.Build.0 = Release|Any CPU
3576+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Release|x86.ActiveCfg = Release|Any CPU
3577+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43}.Release|x86.Build.0 = Release|Any CPU
3578+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3579+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Debug|Any CPU.Build.0 = Debug|Any CPU
3580+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Debug|x64.ActiveCfg = Debug|Any CPU
3581+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Debug|x64.Build.0 = Debug|Any CPU
3582+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Debug|x86.ActiveCfg = Debug|Any CPU
3583+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Debug|x86.Build.0 = Debug|Any CPU
3584+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Release|Any CPU.ActiveCfg = Release|Any CPU
3585+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Release|Any CPU.Build.0 = Release|Any CPU
3586+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Release|x64.ActiveCfg = Release|Any CPU
3587+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Release|x64.Build.0 = Release|Any CPU
3588+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Release|x86.ActiveCfg = Release|Any CPU
3589+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893}.Release|x86.Build.0 = Release|Any CPU
35623590
EndGlobalSection
35633591
GlobalSection(SolutionProperties) = preSolution
35643592
HideSolutionNode = FALSE
@@ -3844,6 +3872,8 @@ Global
38443872
{65E895B6-D0A6-4C5C-A090-07C7590F48B9} = {15FC3D1A-25D7-446B-87A7-B45BA3C2225F}
38453873
{7DB60101-9D99-4FD6-89AD-29648F537333} = {15FC3D1A-25D7-446B-87A7-B45BA3C2225F}
38463874
{22DA5C34-2859-4599-97DA-9F9E3B7CEEA4} = {49BC383A-D7E6-4013-93C7-371479B984CC}
3875+
{AFF43F5B-46EC-4560-8E92-6D241C0D9F43} = {15FC3D1A-25D7-446B-87A7-B45BA3C2225F}
3876+
{EEFD27E0-F0F3-45EF-A2CB-D9C8135BC893} = {72E7FA64-5B1E-477D-BD30-63B7F206B3C4}
38473877
EndGlobalSection
38483878
GlobalSection(ExtensibilityGlobals) = postSolution
38493879
SolutionGuid = {F5273D7F-3334-48DF-94E3-41AE6816CD4D}

build/cache/spirv-cross.json.gz

19.8 KB
Binary file not shown.

build/nuke/Build.Native.cs

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,134 @@ pub fn build(b: *std.Build) void {
668668
)
669669
);
670670

671+
AbsolutePath SPIRVCrossPath => RootDirectory / "build" / "submodules" / "SPIRV-Cross";
672+
673+
//This is the build script for the SPIRV-Reflect shared library
674+
const string SPIRVCrossBuildScript = @"const std = @import(""std"");
675+
const fs = std.fs;
676+
677+
pub fn build(b: *std.Build) void {
678+
const target = b.standardTargetOptions(.{});
679+
const mode = b.standardOptimizeOption(.{});
680+
681+
const shared_lib_options: std.build.SharedLibraryOptions = .{
682+
.name = ""spirv-cross"",
683+
.target = target,
684+
.optimize = mode,
685+
};
686+
687+
const lib: *std.build.LibExeObjStep = b.addSharedLibrary(shared_lib_options);
688+
lib.linkLibC();
689+
lib.linkLibCpp();
690+
691+
var flags = &.{ ""-std=c++11"", ""-fPIC"" };
692+
693+
//Enable the GLSL, HLSL, MSL, CPP, and Reflect C APIs
694+
lib.defineCMacro(""SPIRV_CROSS_C_API_GLSL"", ""1"");
695+
lib.defineCMacro(""SPIRV_CROSS_C_API_HLSL"", ""1"");
696+
lib.defineCMacro(""SPIRV_CROSS_C_API_MSL"", ""1"");
697+
lib.defineCMacro(""SPIRV_CROSS_C_API_CPP"", ""1"");
698+
lib.defineCMacro(""SPIRV_CROSS_C_API_REFLECT"", ""1"");
699+
700+
//Export the C API symbols
701+
lib.defineCMacro(""SPVC_EXPORT_SYMBOLS"", ""1"");
702+
703+
//If we arent in debug, defined NDEBUG
704+
if (mode != .Debug)
705+
lib.defineCMacro(""NDEBUG"", ""1"");
706+
707+
lib.addCSourceFiles(&.{
708+
root_path ++ ""spirv_cross.cpp"",
709+
root_path ++ ""spirv_cfg.cpp"",
710+
root_path ++ ""spirv_cpp.cpp"",
711+
root_path ++ ""spirv_cross_c.cpp"",
712+
root_path ++ ""spirv_cross_parsed_ir.cpp"",
713+
root_path ++ ""spirv_cross_util.cpp"",
714+
root_path ++ ""spirv_glsl.cpp"",
715+
root_path ++ ""spirv_hlsl.cpp"",
716+
root_path ++ ""spirv_msl.cpp"",
717+
root_path ++ ""spirv_parser.cpp"",
718+
root_path ++ ""spirv_reflect.cpp"",
719+
}, flags);
720+
721+
b.installArtifact(lib);
722+
}
723+
724+
fn root_dir() []const u8 {
725+
return std.fs.path.dirname(@src().file) orelse ""."";
726+
}
727+
728+
const root_path = root_dir() ++ ""/"";
729+
";
730+
731+
Target SPIRVCross => CommonTarget
732+
(
733+
x => x.Before(Compile)
734+
.After(Clean)
735+
.Executes
736+
(
737+
() =>
738+
{
739+
var runtimes = RootDirectory / "src" / "Native" / "Silk.NET.SPIRV.Cross.Native" / "runtimes";
740+
741+
//Write out the build script to the directory
742+
File.WriteAllText(SPIRVCrossPath / "build.zig", SPIRVCrossBuildScript);
743+
744+
{ //Linux
745+
//Build for Linux x86_64 with glibc 2.26 (old version specified for compatibility)
746+
InheritedShell($"zig build -Doptimize=ReleaseSmall -Dtarget=x86_64-linux-gnu.2.26 --verbose", SPIRVCrossPath).AssertZeroExitCode();
747+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.so", runtimes / "linux-x64" / "native" / "libspirv-cross.so", FileExistsPolicy.Overwrite);
748+
749+
//Build for Linux x86 with glibc 2.26 (old version specified for compatibility)
750+
InheritedShell($"zig build -Doptimize=ReleaseSmall -Dtarget=x86-linux-gnu.2.26 --verbose", SPIRVCrossPath).AssertZeroExitCode();
751+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.so", runtimes / "linux-x86" / "native" / "libspirv-cross.so", FileExistsPolicy.Overwrite);
752+
753+
//Build for Linux arm64 with glibc 2.26 (old version specified for compatibility)
754+
InheritedShell($"zig build -Doptimize=ReleaseSmall -Dtarget=aarch64-linux-gnu.2.26 --verbose", SPIRVCrossPath).AssertZeroExitCode();
755+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.so", runtimes / "linux-arm64" / "native" / "libspirv-cross.so", FileExistsPolicy.Overwrite);
756+
}
757+
758+
{ //Windows
759+
//Build for Windows x86_64
760+
InheritedShell($"zig build -Doptimize=ReleaseFast -Dtarget=x86_64-windows --verbose", SPIRVCrossPath).AssertZeroExitCode();
761+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "spirv-cross.dll", runtimes / "win-x64" / "native" / "spirv-cross.dll", FileExistsPolicy.Overwrite);
762+
763+
//Build for Windows x86
764+
InheritedShell($"zig build -Doptimize=ReleaseFast -Dtarget=x86-windows --verbose", SPIRVCrossPath).AssertZeroExitCode();
765+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "spirv-cross.dll", runtimes / "win-x86" / "native" / "spirv-cross.dll", FileExistsPolicy.Overwrite);
766+
767+
//Build for Windows arm64
768+
InheritedShell($"zig build -Doptimize=ReleaseFast -Dtarget=aarch64-windows --verbose", SPIRVCrossPath).AssertZeroExitCode();
769+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "spirv-cross.dll", runtimes / "win-arm64" / "native" / "spirv-cross.dll", FileExistsPolicy.Overwrite);
770+
}
771+
772+
{ //MacOS
773+
//Build for MacOS x86_64
774+
InheritedShell($"zig build -Doptimize=ReleaseSmall -Dtarget=x86_64-macos --verbose", SPIRVCrossPath).AssertZeroExitCode();
775+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.dylib", runtimes / "osx-x64" / "native" / "libspirv-cross.dylib", FileExistsPolicy.Overwrite);
776+
777+
//Build for MacOS arm64
778+
InheritedShell($"zig build -Doptimize=ReleaseSmall -Dtarget=aarch64-macos --verbose", SPIRVCrossPath).AssertZeroExitCode();
779+
CopyFile(SPIRVCrossPath / "zig-out" / "lib" / "libspirv-cross.dylib", runtimes / "osx-arm64" / "native" / "libspirv-cross.dylib", FileExistsPolicy.Overwrite);
780+
}
781+
782+
var files = (runtimes / "win-x64" / "native").GlobFiles("*.dll")
783+
.Concat((runtimes / "win-x86" / "native").GlobFiles("*.dll"))
784+
.Concat((runtimes / "win-arm64" / "native").GlobFiles("*.dll"))
785+
.Concat((runtimes / "osx-x64" / "native").GlobFiles("*.dylib"))
786+
.Concat((runtimes / "osx-arm64" / "native").GlobFiles("*.dylib"))
787+
.Concat((runtimes / "linux-x64" / "native").GlobFiles("*.so"))
788+
.Concat((runtimes / "linux-x86" / "native").GlobFiles("*.so"))
789+
.Concat((runtimes / "linux-arm64" / "native").GlobFiles("*.so"));
790+
791+
var glob = string.Empty;
792+
glob = files.Aggregate(glob, (current, path) => current + $"\"{path}\" ");
793+
794+
PrUpdatedNativeBinary("SPIRV-Cross", glob);
795+
}
796+
)
797+
);
798+
671799
AbsolutePath VulkanLoaderPath => RootDirectory / "build" / "submodules" / "Vulkan-Loader";
672800

673801
Target VulkanLoader => CommonTarget

build/submodules/SPIRV-Cross

Submodule SPIRV-Cross added at 12542fc

generator.json

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2567,6 +2567,95 @@
25672567
}
25682568
]
25692569
},
2570+
{
2571+
"profileName": "SPIRVCross",
2572+
"sources": [
2573+
"build/submodules/SPIRV-Cross/spirv_cross_c.h"
2574+
],
2575+
"mode": "Clang",
2576+
"cacheDir": "build/cache",
2577+
"cacheKey": "spirv-cross",
2578+
"controlDescriptors": [
2579+
"convert-windows-only",
2580+
"no-pre-2.18-obsolete-enums",
2581+
"typemap-native",
2582+
"no-extra-dir"
2583+
],
2584+
"converter": {},
2585+
"prefix": "spvc_",
2586+
"clang": {
2587+
"args": [
2588+
"--language=c++",
2589+
"--std=c++17",
2590+
"-m64",
2591+
"-Wno-expansion-to-defined",
2592+
"-Wno-ignored-attributes",
2593+
"-Wno-ignored-pragma-intrinsic",
2594+
"-Wno-nonportable-include-path",
2595+
"-Wno-pragma-pack",
2596+
"-I$windowsSdkIncludes",
2597+
"-Ibuild/submodules/SPIRV-Cross"
2598+
],
2599+
"traverse": [
2600+
"build/submodules/SPIRV-Cross/spirv_cross_c.h"
2601+
],
2602+
"classes": {
2603+
"spirv_cross_c.h": "[Core]Cross"
2604+
}
2605+
},
2606+
"exclude": [
2607+
],
2608+
"rename": {
2609+
"spvc_compiler_options_s": "CompilerOptions",
2610+
"spvc_compiler_s": "Compiler",
2611+
"spvc_constant_s": "Constant",
2612+
"spvc_context_s": "Context",
2613+
"spvc_parsed_ir_s": "ParsedIr",
2614+
"spvc_resources_s": "Resources",
2615+
"spvc_set_s": "Set",
2616+
"spvc_type_s": "CrossType"
2617+
},
2618+
"bakery": {
2619+
"profileNames": [
2620+
"spirv_cross_c"
2621+
]
2622+
},
2623+
"output": {
2624+
"mode": "Default",
2625+
"path": "src/SPIRV/Silk.NET.SPIRV.Cross",
2626+
"licenseFile": "build/LICENSE_HEADER.txt",
2627+
"props": "build/props/bindings.props"
2628+
},
2629+
"namespace": "Silk.NET.SPIRV.Cross",
2630+
"extensionsNamespace": "Silk.NET.SPIRV.Cross.Extensions",
2631+
"nameContainer": {
2632+
"linux-x64": "libspirv-cross.so",
2633+
"win-x64": "spirv-cross.dll",
2634+
"win-x86": "spirv-cross.dll",
2635+
"osx-x64": "libspirv-cross.dylib",
2636+
"android": "libspirv-cross.so",
2637+
"className": "SPIRVCrossLibraryNameContainer"
2638+
},
2639+
"typeMaps": [
2640+
{
2641+
"SpvSourceLanguage_": "Silk.NET.SPIRV.SourceLanguage",
2642+
"SpvDim_": "Silk.NET.SPIRV.Dim",
2643+
"SpvExecutionMode_": "Silk.NET.SPIRV.ExecutionMode",
2644+
"SpvExecutionModel_": "Silk.NET.SPIRV.ExecutionModel",
2645+
"SpvImageFormat_": "Silk.NET.SPIRV.ImageFormat",
2646+
"SpvOp_": "Silk.NET.SPIRV.Op",
2647+
"SpvBuiltIn_": "Silk.NET.SPIRV.BuiltIn",
2648+
"SpvStorageClass_": "Silk.NET.SPIRV.StorageClass",
2649+
"SpvCapability_": "Silk.NET.SPIRV.Capability",
2650+
"SpvDecoration_": "Silk.NET.SPIRV.Decoration",
2651+
"SpvAccessQualifier_": "Silk.NET.SPIRV.AccessQualifier"
2652+
},
2653+
{
2654+
"$include.commonTypeMap": "build/csharp_typemap.json",
2655+
"$include.dxTypeMap": "build/dx_typemap.json"
2656+
}
2657+
]
2658+
},
25702659
{
25712660
"profileName": "WGL",
25722661
"sources": [
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<SilkNativePackage>true</SilkNativePackage>
5+
</PropertyGroup>
6+
7+
<Import Project="..\..\..\build\props\common.props" />
8+
9+
<PropertyGroup>
10+
<TargetFrameworks>netstandard2.0;net4.6.1</TargetFrameworks>
11+
<PackageId>Silk.NET.SPIRV.Cross.Native</PackageId>
12+
<Authors>.NET Foundation and Contributors</Authors>
13+
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
14+
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
15+
<PackageProjectUrl>https://github.com/dotnet/Silk.NET</PackageProjectUrl>
16+
<Description>Multi-platform native library for SPIRV-Cross.</Description>
17+
<RepositoryType>git</RepositoryType>
18+
<RepositoryUrl>https://github.com/KhronosGroup/SPIRV-Cross</RepositoryUrl>
19+
<IncludeBuildOutput>false</IncludeBuildOutput>
20+
<IncludeContentInPack>true</IncludeContentInPack>
21+
</PropertyGroup>
22+
23+
<ItemGroup>
24+
<Content Include="build\net461\$(PackageId).props" PackagePath="build\net461\$(PackageId).props" />
25+
26+
<Content Include="runtimes\linux-x64\native\libspirv-cross.so"
27+
PackagePath="runtimes\linux-x64\native\libspirv-cross.so" />
28+
29+
<Content Include="runtimes\linux-arm64\native\libspirv-cross.so"
30+
PackagePath="runtimes\linux-arm64\native\libspirv-cross.so" />
31+
32+
<Content Include="runtimes\linux-x86\native\libspirv-cross.so"
33+
PackagePath="runtimes\linux-x86\native\libspirv-cross.so" />
34+
35+
<Content Include="runtimes\win-arm64\native\spirv-cross.dll" PackagePath="runtimes\win-arm64\native\spirv-cross.dll" />
36+
<Content Include="runtimes\win-x64\native\spirv-cross.dll" PackagePath="runtimes\win-x64\native\spirv-cross.dll" />
37+
<Content Include="runtimes\win-x86\native\spirv-cross.dll" PackagePath="runtimes\win-x86\native\spirv-cross.dll" />
38+
39+
<Content Include="runtimes\osx-x64\native\libspirv-cross.dylib" PackagePath="runtimes\osx-x64\native\libspirv-cross.dylib" />
40+
<Content Include="runtimes\osx-arm64\native\libspirv-cross.dylib" PackagePath="runtimes\osx-arm64\native\libspirv-cross.dylib" />
41+
</ItemGroup>
42+
43+
</Project>

0 commit comments

Comments
 (0)