diff --git a/.github/workflows/release-legacy.yml b/.github/workflows/release-legacy.yml index c7c6d1d7..e45c585b 100644 --- a/.github/workflows/release-legacy.yml +++ b/.github/workflows/release-legacy.yml @@ -82,7 +82,7 @@ jobs: with: name: Legacy SampSharp ${{ env.VERSION }} draft: true - prerelease: ${{ contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta') }} + prerelease: ${{ contains(env.VERSION, 'prerelease') || contains(env.VERSION, 'rc') }} files: SampSharp-${{ env.VERSION }}.zip - name: Pack NuGet packages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6822a7b4..723dd84b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,7 +87,7 @@ jobs: with: name: SampSharp ${{ env.VERSION }} draft: true - prerelease: ${{ contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta') }} + prerelease: ${{ contains(env.VERSION, 'prerelease') || contains(env.VERSION, 'rc') }} files: SampSharp-${{ env.VERSION }}.zip - name: Pack NuGet packages diff --git a/.gitignore b/.gitignore index caad3fe5..ffb1cb9e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ PublishProfiles/ *.suo *.sln.DotSettings.user launchSettings.json +*.lscache # OS .DS_Store diff --git a/AGENTS.md b/AGENTS.md index 426d9bc3..35540e1c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,17 +14,20 @@ SampSharp is a comprehensive C# framework for building game modes and plugins fo - **SampSharp.OpenMp.Entities.Commands/** - Rich command processor and dispatcher - **SampSharp.Analyzer/** - Roslyn-based code analyzer for best practices - **SampSharp.CodeFixes/** - Automatic code fixes for analyzer diagnostics -- **SampSharp.SourceGenerator/** - Source code generator for AOT compilation -- **SampSharp.Sdk/** - SDK tools and utilities +- **SampSharp.SourceGenerator/** - Source code generator for game mode entry point and open.mp interop marshalling based on API shapes defined in partial types with attributes +- **SampSharp.Sdk/** - Primary SDK package for developing with SampSharp (single NuGet package users add to their projects) +- **SampSharp.Templates/** - Project templates and scaffolding for game mode development #### Legacy (SA-MP v0.x) - **legacy/** - Legacy SA-MP implementation (limited support for critical fixes only) ### Testing (`test/`) -- **SampSharp.OpenMp.Entities.Commands.UnitTests/** - Unit tests for the command processor (`dotnet test SampSharp.slnx`) -- **TestMode.OpenMp.Entities/** - Integration tests for entity system -- **TestMode.OpenMp.Core/** - Core functionality tests -- **TestMode.UnitTests/** - Unit tests +- **SampSharp.OpenMp.Core.Tests/** - Unit tests for core open.mp functionality +- **SampSharp.OpenMp.Entities.Tests/** - Unit tests for entity system +- **SampSharp.OpenMp.Entities.Commands.Tests/** - Unit tests for command processor +- **TestMode.Entities.ApiTests/** - Integration tests for entity API functionality +- **TestMode.OpenMp.Core/** - Manual testing for core functionality +- **TestMode.OpenMp.Entities/** - Manual testing for entity system ### Build & Environment - **build/** - Build artifacts and CMake configurations diff --git a/src/sampsharp-component/CMakePresets.json b/src/sampsharp-component/CMakePresets.json new file mode 100644 index 00000000..8331f315 --- /dev/null +++ b/src/sampsharp-component/CMakePresets.json @@ -0,0 +1,25 @@ +{ + "version": 6, + "configurePresets": [ + { + "name": "clang", + "displayName": "Clang CL", + "description": "Build using Clang CL toolset", + "generator": "Visual Studio 18 2026", + "toolset": "ClangCL", + "binaryDir": "${sourceDir}/../../build/cmake/component", + "cacheVariables": { + "CMAKE_POLICY_VERSION_MINIMUM": "3.5", + "CMAKE_BUILD_TYPE": "RelWithDebInfo" + } + } + ], + "buildPresets": [ + { + "name": "clang", + "configurePreset": "clang", + "configuration": "RelWithDebInfo", + "jobs": 0 + } + ] +}