Watch
2
0
Fork
You've already forked raylib-cs
0

chg: simplifying build logic - a simple line in the documentation should save us the code here

This commit is contained in:
tiger tiger tiger 2026-07-07 21:52:01 +02:00
commit 6c496b67b8
2 changed files with 19 additions and 16 deletions

View file

@ -7,20 +7,4 @@
<PropertyGroup Condition="'$(MSBuildProjectName)' == 'Raylib-cs' And '$(RuntimeIdentifier)' == 'browser-wasm'">
<OutputType>Library</OutputType>
</PropertyGroup>
<!-- Raylib-cs 8.1.0 is not on nuget.org yet; pack locally so Examples and tests resolve the package with native runtimes. -->
<Target Name="_EnsureLocalRaylibCsPackage"
BeforeTargets="Restore"
Condition="'$(MSBuildProjectName)' != 'Raylib-cs' And Exists('$(MSBuildThisFileDirectory)Raylib-cs/Raylib-cs.csproj')">
<PropertyGroup>
<_LocalNuGetDir>$(MSBuildThisFileDirectory)nuget</_LocalNuGetDir>
<_LocalRaylibCsNupkg>$(_LocalNuGetDir)/Raylib-cs.$(RaylibCsVersion).nupkg</_LocalRaylibCsNupkg>
</PropertyGroup>
<MakeDir Directories="$(_LocalNuGetDir)" Condition="!Exists('$(_LocalNuGetDir)')"/>
<MSBuild Projects="$(MSBuildThisFileDirectory)Raylib-cs/Raylib-cs.csproj"
Targets="Restore;Pack"
Properties="Configuration=Release;PackageOutputPath=$(_LocalNuGetDir)"
RemoveProperties="RuntimeIdentifier;RuntimeIdentifiers;SelfContained;_IsPublishing"
Condition="!Exists('$(_LocalRaylibCsNupkg)') Or '$(ForceRaylibCsPack)' == 'true'"/>
</Target>
</Project>

View file

@ -65,6 +65,25 @@ otherwise the command won't work.
5. Start coding!
## Building from source
The `Examples` and `Raylib-cs.Tests` projects consume the binding as a NuGet package, and the in-repo
version may not be published on nuget.org yet. Pack it once into the local feed before the first build:
```
dotnet pack Raylib-cs -c Release -o nuget
dotnet build
```
`NuGet.config` points restore at the local `./nuget` feed, so both projects pick up the freshly packed
package. If you skip the pack step on a fresh clone, restore fails with NU1301 (the `./nuget` source
doesn't exist) or NU1102 (Raylib-cs not found) — running the pack command fixes both.
When iterating on the binding itself, note that NuGet caches the extracted package by version and
ignores repacks of the same version. After repacking, delete the old package from `./nuget` and clear
the cached copy (`dotnet nuget locals global-packages --clear`, or delete
`~/.nuget/packages/raylib-cs/<version>`) before restoring again.
## Hello, World!
```csharp