159 Commits
Author SHA1 Message Date
Vaclav Elias c345fe6052 fix(build): Remove unreachable return from the StrideSortItems inline task (#3494) 2026-09-28 01:04:00 +09:00
Virgile Bello 15d401e156 Samples: the content version lives in StrideSamplesVersion.props, not SharedAssemblyInfo.cs
A samples release no longer rebuilds every assembly: Stride.Assets embeds the file as a resource, outside its reference assembly.
2026-09-19 11:35:53 +09:00
Virgile Bello f114b95e41 Templates: resolve template packages by exact version 2026-09-18 12:05:55 +09:00
Virgile Bello 75497567c4 Samples: version the content template packs separately from the engine 2026-09-18 09:15:19 +09:00
Virgile Bello e243b9ff15 feat: generate typed asset URL constants (Assets class) from project assets 2026-07-16 17:38:22 +02:00
Virgile Bello 243045b963 build: pack extensionless natives at the right path (fixes linux/osx ffmpeg) 2026-07-15 15:10:13 +02:00
Virgile Bello 913f96915d build: track deployed native libraries in the up-to-date check 2026-07-15 08:43:17 +02:00
Virgile Bello 4b587d50b2 build: share auto-pack-deploy logic between the Stride SDK chain and template projects 2026-07-03 23:39:14 +09:00
Virgile Bello a75c266328 Rename StrideAssetAssembly to StrideContainsAssetTypes 2026-07-02 15:49:45 +09:00
Virgile Bello 53dfada6b7 Fix multi-API host layout on single-API builds
Stage per-API subfolders from StrideGraphicsApis (what the build produces)
instead of a hardcoded per-TFM set: single-API CI builds staged nothing
while still stripping the flat DLL, so the AssetCompiler crashed with
FileNotFoundException on Stride.Graphics.
2026-07-02 13:24:28 +09:00
Virgile Bello 53e49d4810 Add launch-time graphics API selection for GameStudio/AssetCompiler
Lets tooling hosts pick Direct3D11/Direct3D12/Vulkan at launch instead of
being fixed to one API at build time.

- GraphicsApiSelector: shared --graphics-api / STRIDE_GRAPHICS_API / host
  preference resolution; bad values fail loudly (stderr+exit for console,
  recorded StartupError surfaced by GameStudio's WPF dialog).
- Deployed path: NuGet resolver picks the API subfolder via ListAssemblies.
- Local path: StrideMultiGraphicsApiHost lays per-API bin subfolders and
  GraphicsApiHostResolver loads the selected one via AssemblyLoadContext.
- GameStudio setting (Environment/GraphicsApi, restart) read pre-resolver.
- Show active API in title bar / AssetCompiler banner via GraphicsDevice.Platform.
- launchSettings profiles for bin and packaged runs.
2026-07-01 14:47:29 +09:00
Virgile Bello 0a8426ceba build: drop non-desktop native runtimes from tooling host output
AssetCompiler/GameStudio no-RID builds copied every RID's runtimes/<rid>/
assets (~250 MB of unused android/ios/tvos). New StrideToolingHost opt-in
keeps win/linux/osx on net10.0 and win-only on net10.0-windows.

Also fix the Tests SDK runtime filter to normalize '\'->'/': Replace('/','\')
yields a double backslash, which would drop the matching RID's natives on
forward-slash paths.
2026-07-01 14:38:45 +09:00
Virgile Bello 56a4133e55 build: share static NuGet package metadata across packages and drop Silicon Studio attribution 2026-06-29 17:53:29 +09:00
Virgile Bello f263c4e32a build: enable ContinuousIntegrationBuild on CI for deterministic SourceLink paths 2026-06-29 12:24:11 +09:00
Virgile Bello f6803ba404 build: touch copy marker after CoreCompile so FastUpToDateCheck tracks body-only rebuilds 2026-06-29 01:21:00 +09:00
Virgile Bello 1b0cdb8115 build: use lowercase 'stride' for the per-user app-data directory (nugetdev, template-engine) 2026-06-27 11:45:45 +09:00
Virgile Bello 55608d9493 build: unify version overlay into SharedAssemblyInfo.Generated.cs
- single generated overlay (was Worktree.cs + NuGet.cs) swapped in by one SDK target
- base PublicVersion is an implausible sentinel (4.4.65534), decoupled from the floor, so a non-overlaid build is obvious; the overlay is always emitted
- generator runs on CI too (empty suffix via NoLedgerSuffix); release task fails on a no-tag fallback (StrideAllowFloorVersion opts in)
- share the NuGet version derivation via Stride.NuGetVersion.props (dedup PackageInfo + Templates.Common)
2026-06-24 14:13:39 +09:00
Virgile Bello 62136f50d4 build: unify dev + release version generators on a shared floor (MinVersion/MajorMinor inputs) 2026-06-24 14:13:35 +09:00
Virgile Bello 566838ec91 assets: rename Stride.Core.Assets.CompilerApp to Stride.AssetCompiler
Renames the package id, assembly, build targets and namespaces. The package upgrader rewrites the PackageReference id and normalizes its asset flow to build;buildTransitive for projects coming from <4.4. Removes the now-unused PackAssets MSBuild task.
2026-06-24 14:13:30 +09:00
Virgile Bello fe349ab069 build: declare test TargetFrameworks explicitly, move StrideTestPlatforms expansion to props
Test projects now set <TargetFramework(s)> from props-time sets (StrideTestTargetFrameworks
[/MacOS]) computed from StrideTestPlatforms, instead of the targets-time expansion in the
Tests SDK. TargetFrameworks are identical across platform configs (verified); the literal
element makes Roslyn MSBuildWorkspace tooling treat tests as SDK-style. Tests that already
declared a TargetFramework are untouched.
2026-06-18 17:40:41 +09:00
Virgile Bello 78c62d3f04 build: declare runtime TargetFrameworks explicitly, drop StrideRuntime indirection
Runtime assemblies now set <TargetFrameworks> from precomputed props-time sets
(StrideRuntimeTargetFrameworks[/Windows/MacOS]) instead of the StrideRuntime
boolean expanded in Stride.Frameworks.targets. Behaviour is identical (verified
across platform configs); the literal element makes Roslyn MSBuildWorkspace
tooling (LSPs, analyzers) treat them as SDK-style.
2026-06-18 17:40:40 +09:00
Virgile Bello 70ae15adfd assets: pack AssetAssemblies into packed sdpkg; consumer loads declared host assembly
pack-assets writes the host-loadable assembly (lib/<host-tfm>/<name>.dll) into the
packed sdpkg's AssetAssemblies; the manifest-mode consumer prefers those over the
lock file's runtime assemblies (falling back when a package predates the member).
Engine runtime asset packages declare StrideAssetAssembly=true so their packed
sdpkgs carry the entry. Validated: pack-assets + the pack target emit the entry for
Stride.Engine, and the consumer honors it (engine packages also stay robust via the
compiler's own assembly closure).
2026-06-17 11:27:44 +09:00
Virgile Bello 39873f52b2 assets: generate .sdbuild asset-build manifests during build (not consumed yet) 2026-06-17 10:17:39 +09:00
Virgile Bello db5f3b8bfd assets: AssetAssemblies package member, StrideTestRequiresHostAssembly renamed to StrideAssetAssembly 2026-06-17 10:17:38 +09:00
Virgile Bello c4233e5724 build: dedupe macOS down-resolution graphics-API builds (route refs by negotiated callee TFM) 2026-06-14 17:21:32 +09:00
Virgile Bello 6d3d7f00db sdk: make test-project compile-skip take effect in package builds 2026-06-14 16:53:10 +09:00
Virgile Bello 183762b00d build: fix GraphicsApiDependentBuildAll leaking D3D onto single-API TFMs (iOS/macOS/Android) 2026-06-14 16:53:06 +09:00
Virgile Bello 682fc2e11b build: package version via inline git task + 3-part semver; remove deps/Stride.GitVersioning (libgit2 + vendored Nerdbank fork) 2026-06-13 22:00:47 +09:00
Virgile Bello 5f4217da90 sdk: copy net10.0-macos native deps to output dir (vstest runs the bare bin, not the .app) 2026-06-12 14:14:57 +09:00
Virgile Bello cf9c8d8f28 native: get Windows LLVM toolchain from Stride.Dependencies.LLVM.Windows, drop deps/LLVM (540MB of LFS) 2026-06-12 14:14:57 +09:00
Virgile Bello 98beb222c2 android: resolve NDK locally per project (strip _AndroidNdkDirectory from reference dispatches, drop CI NDK install/pin) 2026-06-11 15:05:00 +09:00
Virgile Bello 9cf0bbf7a0 sdk/tests: skip no-suffix net10.0 when StrideExplicitMacOSRuntime adds net10.0-macos 2026-06-11 15:04:59 +09:00
Virgile Bello e572bf671a sdk/tests: add Game StrideTestPlatform for host-loadable asset-compiler shadow 2026-06-11 15:04:59 +09:00
Virgile Bello 42d0d64d0e ci: add --repeat flake-hunt input to Android/iOS game test workflows 2026-06-11 15:04:59 +09:00
Virgile Bello b20e98d401 ci/ios: add iOS to gold-gen (single-project mode + test-filter forwarding) 2026-06-11 15:04:59 +09:00
Virgile Bello 91266271b2 sdk/tests: skip Microsoft.NET.Test.Sdk + xunit.runner.visualstudio on iOS too (parity with Android) 2026-06-11 15:04:59 +09:00
Virgile Bello 584b1b1203 sdk/tests: DisableMsCoverageReferencedPathMaps to unblock pre-CoreCompile parallelism (vstest#15295) 2026-06-11 15:04:59 +09:00
Virgile Bello 60feb7a38a tests/combined: aggregate test suites into single .app/APK via meta ProjectReference 2026-06-11 15:04:58 +09:00
Virgile Bello 48636b208e sdk: hook StrideCompileAsset via CopyFilesToOutputDirectory; strip Library globals on CompilerApp Pack 2026-06-11 15:04:58 +09:00
Virgile Bello 6ccd102549 Stride.Core: shared iOS NativeReference wiring + bypass .ssdeps for NuGet consumers 2026-06-11 15:04:58 +09:00
Virgile Bello 046cb4eac8 Stride.Video: AVFoundation backend skeleton, opt into net10.0-macos for AVFoundation/Metal bindings 2026-06-11 15:04:57 +09:00
Virgile Bello d54b8bfd43 sdk: add net10.0-macos as a Stride runtime TFM (StrideExplicitMacOSRuntime opt-in) 2026-06-11 15:04:57 +09:00
Virgile Bello fa0b794902 iOS: bootstrap Vulkan via main-binary dlsym (vkGetInstanceProcAddr re-exported) 2026-06-11 15:04:56 +09:00
Virgile Bello 26c375b87f Stride.Dependencies.targets: emit NativeReference items for iOS static libs (.a) via .ssdeps 2026-06-11 15:04:56 +09:00
Virgile Bello c680249aa9 sdk/tests: iOS launchers + headless mode wiring 2026-06-11 15:04:55 +09:00
Virgile Bello d271c25079 sdk: iOS native deps use per-RID dotnet/<rid> layout 2026-06-11 15:04:55 +09:00
Virgile Bello cc82f2fe60 templates: pack missing platform exec projects into every sample
TemplatePreprocessor copies MyTemplate.{Platform}/ from a reference template
(NewGame) at pack time for any platform the sample didn't author by hand.
NewGame's library dir renamed MyTemplate/ → MyTemplate.Game/ to unify the
naming with samples so injected csprojs reference the right sibling verbatim.
2026-06-10 17:27:10 +09:00
Virgile Bello c970ef49b2 Add test-gold-gen workflow with cross-platform filtering and headless gold promotion
- test-filter + project inputs on test-{windows,linux,macos,android}-game (default empty = unchanged)
- Android on-device --filter via xunit_filter intent extra, reusing ParseVstestFilter
- test-gold-gen.yml: on-demand per-platform dispatch, combined gold-images artifact, optional promote
- CompareGold promote/dedup subcommands: tolerance compare (StbImageSharp + linked ImageThreshold),
  priority-ordered, lands gold via branch/amend/PR (never the default branch directly)
- CompareGold UI: surface Test Gold Generation runs
2026-06-10 14:50:50 +09:00
Virgile Bello 982c044cfd sdk: auto-attach CompilerApp ProjectReference, drop _StrideEnsureCompilerAppPacked + BSF gate 2026-06-09 21:47:21 +09:00
Virgile Bello c5e242c339 Upgrade to Avalonia 12.0.2 2026-06-02 21:59:40 +09:00