From ad0b10efdf3e7d15c30d316df92ed3506a89b445 Mon Sep 17 00:00:00 2001 From: Stjepan Bakrac Date: Wed, 3 Jun 2026 20:43:31 +0200 Subject: [PATCH 1/2] Updated build tools, updated CI --- .github/workflows/ci.yml | 91 ++----------- core/core.vcxproj | 216 ++++++++++++++----------------- core/src/utilities/coroutine.hpp | 2 +- 3 files changed, 110 insertions(+), 199 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a410995..b23eb4e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,35 +17,28 @@ defaults: jobs: build: name: Build - runs-on: windows-2022 - if: | - !contains(github.event.head_commit.message, '***NO_CI***') && - !contains(github.event.head_commit.message, '[skip ci]') + runs-on: windows-2025-vs2026 + if: "!contains(github.event.head_commit.message, '[no ci]')" steps: - name: Set up build environment - uses: microsoft/setup-msbuild@v1.1 + uses: microsoft/setup-msbuild@v3 - name: Set up NuGet - uses: nuget/setup-nuget@v1 + uses: nuget/setup-nuget@v2 - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: path: main submodules: recursive - fetch-depth: 0 # git complains when cloning the submodules without this - name: Checkout branding - if: - github.repository == 'Windower/Fenestra' && - github.event_name == 'push' - uses: actions/checkout@v3 + if: github.repository == 'Windower/Fenestra' && github.event_name == 'push' + uses: actions/checkout@v6 with: token: ${{ secrets.BRANDING_PAT }} repository: Windower/Branding ref: ${{ github.ref_name == 'stable' && '5.0/release' || '5.0/test' }} path: branding - name: Apply branding - if: - github.repository == 'Windower/Fenestra' && - github.event_name == 'push' + if: github.repository == 'Windower/Fenestra' && github.event_name == 'push' run: | Remove-Item 'branding/.git' -Recurse -Force Copy-Item 'branding/*' 'main' -Recurse -Force @@ -60,70 +53,4 @@ jobs: - name: Index sources run: | Set-Location main - .github/workflows/index-sources - - name: Upload build artifacts - if: github.event_name == 'push' - uses: actions/upload-artifact@v3 - with: - name: binaries - path: main/build/bin/release/ - deploy: - name: Deploy - needs: build - runs-on: windows-2022 - if: | - github.repository == 'Windower/Fenestra' && - github.event_name == 'push' - steps: - - name: Set up SSH - run: | - # Set up SSH - Write-Output 'Starting ssh-agent service...' - Get-Service -Name 'ssh-agent' | Set-Service -StartupType Manual - Start-Service -Name 'ssh-agent' - New-Item -ItemType Directory -Force -Path '~/.ssh' *>$null - $env:SSH_KEY | &ssh-add - - &ssh-keyscan -H "$( - @($env:SSH_HOST) + (Resolve-DnsName $env:SSH_HOST).IPAddress -Join ',' - )" | Add-Content '~/.ssh/known_hosts' - env: - SSH_HOST: ${{ secrets.SSH_HOST }} - SSH_KEY: ${{ secrets.SSH_KEY }} - - name: Checkout - uses: actions/checkout@v3 - - name: Download build artifacts - uses: actions/download-artifact@v3 - with: - name: binaries - path: artifacts - - name: Stage files - run: | - # Stage files - New-Item -ItemType Directory -Force -Path './staging/files' *>$null - Copy-Item './artifacts/windower.exe' -Destination './staging/files' - Copy-Item './artifacts/core.dll' -Destination './staging/files' - Copy-Item './artifacts/version.xml' -Destination './staging/files' - Copy-Item './artifacts/windower.msi' -Destination './staging/files' - Copy-Item './artifacts/windower.zip' -Destination './staging/files' - Copy-Item './artifacts/windower.portable.zip' -Destination './staging/files' - - New-Item -ItemType Directory -Force -Path './temp/symbols' *>$null - Copy-Item './artifacts/windower.exe' -Destination './temp/symbols/' - Copy-Item './artifacts/windower.pdb' -Destination './temp/symbols/' - Copy-Item './artifacts/core.dll' -Destination './temp/symbols/' - Copy-Item './artifacts/core.pdb' -Destination './temp/symbols/' - - name: Install debug tools - run: choco install windows-sdk-10-version-2004-windbg - - name: Update symbol database - run: .github/workflows/update-symbols - env: - SSH_HOST: ${{ secrets.SSH_HOST }} - SSH_USER: ${{ secrets.SSH_USER }} - SYMBOLS_PATH: ${{ secrets.SYMBOLS_PATH }}/${{ github.ref_name == 'stable' && 'release' || 'test' }} - - name: Deploy to server - run: .github/workflows/deploy - env: - SSH_HOST: ${{ secrets.SSH_HOST }} - SSH_USER: ${{ secrets.SSH_USER }} - FILES_PATH: ${{ secrets.FILES_PATH }}/${{ github.ref_name == 'stable' && 'release' || 'test' }} - SYMBOLS_PATH: ${{ secrets.SYMBOLS_PATH }}/${{ github.ref_name == 'stable' && 'release' || 'test' }} + .github/workflows/index-sources \ No newline at end of file diff --git a/core/core.vcxproj b/core/core.vcxproj index fb32895..ebdd0aa 100755 --- a/core/core.vcxproj +++ b/core/core.vcxproj @@ -15,27 +15,123 @@ Win32 - + {A25AD743-C0E9-4CA6-8DF1-8055EDE2D9A0} windower core 10.0 + DynamicLibrary + v145 + Unicode + $(SolutionDir)build\bin\$(Configuration)\ + $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ + $(SolutionDir)\fenestra.ruleset + true + + + true + false + + + false + true + true true true $(SolutionDir)build\obj\$(Configuration)\$(ProjectName)\vcpkg - + Debug - + Release + + + + + + + + + + + Level4 + true + WINDOWER_AUTO_VERSION;$(ReleaseConstants);WIN32_LEAN_AND_MEAN;NOMINMAX;WINVER=_WIN32_WINNT_WIN8;_WIN32_WINNT=_WIN32_WINNT_WIN8;PSAPI_VERSION=1;_HAS_AUTO_PTR_ETC=0;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_DEBUG;gsl_FEATURE_WITH_CONTAINER_TO_STD=14;gsl_FEATURE_MAKE_SPAN_TO_STD=14;gsl_FEATURE_BYTE_SPAN_TO_STD=14;gsl_FEATURE_OWNER_MACRO=0;%(PreprocessorDefinitions) + $(IntDir)src;$(ProjectDir)src;$(ProjectDir)lib;$(SolutionDir)extern\luajit\repo\src;%(AdditionalIncludeDirectories) + true + MultiThreadedDebug + true + /utf-8 /Zc:externConstexpr /Zc:throwingNew /Zc:__cplusplus + Async + $(IntDir)\%(RelativeDir) + stdcpplatest + true + true + TurnOffAllWarnings + true + true + false + + + $(SolutionDir)build\lib\luajit\$(Configuration)\;%(AdditionalLibraryDirectories) + $(ProjectName).def + lua51.static.lib;shlwapi.lib;dbghelp.lib;winhttp.lib;imm32.lib;dwrite.lib;d2d1.lib;windowscodecs.lib;icu.lib;%(AdditionalDependencies) + + + $(IntDir)src;$(ProjectDir)src;%(AdditionalIncludeDirectories) + WINDOWER_AUTO_VERSION;$(ReleaseConstants);%(PreprocessorDefinitions) + /c 1252 + + + + + Level4 + MaxSpeed + true + true + true + WINDOWER_AUTO_VERSION;$(ReleaseConstants);WIN32_LEAN_AND_MEAN;NOMINMAX;WINVER=_WIN32_WINNT_WIN8;_WIN32_WINNT=_WIN32_WINNT_WIN8;PSAPI_VERSION=1;_HAS_AUTO_PTR_ETC=0;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;gsl_FEATURE_WITH_CONTAINER_TO_STD=14;gsl_FEATURE_MAKE_SPAN_TO_STD=14;gsl_FEATURE_BYTE_SPAN_TO_STD=14;gsl_FEATURE_OWNER_MACRO=0;%(PreprocessorDefinitions) + $(IntDir)src;$(ProjectDir)src;$(ProjectDir)lib;$(SolutionDir)extern\luajit\repo\src;%(AdditionalIncludeDirectories) + true + MultiThreaded + true + /utf-8 /Zc:externConstexpr /Zc:throwingNew /Zc:__cplusplus + + + + Async + $(IntDir)\%(RelativeDir) + stdcpplatest + true + true + TurnOffAllWarnings + true + false + true + true + + + true + true + $(SolutionDir)build\lib\luajit\$(Configuration)\;%(AdditionalLibraryDirectories) + $(ProjectName).def + lua51.static.lib;shlwapi.lib;dbghelp.lib;winhttp.lib;imm32.lib;dwrite.lib;d2d1.lib;windowscodecs.lib;icu.lib;%(AdditionalDependencies) + true + + + $(IntDir)src;$(ProjectDir)src;%(AdditionalIncludeDirectories) + WINDOWER_AUTO_VERSION;$(ReleaseConstants);%(PreprocessorDefinitions) + /c 1252 + + @@ -351,119 +447,7 @@ - - - DynamicLibrary - true - v145 - Unicode - - - DynamicLibrary - false - v145 - true - Unicode - - - - - - - - - - - - - $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)\fenestra.ruleset - true - false - - - $(SolutionDir)build\bin\$(Configuration)\ - $(SolutionDir)build\obj\$(ProjectName)\$(Configuration)\ - $(SolutionDir)\fenestra.ruleset - true - true - - - - Level4 - true - WINDOWER_AUTO_VERSION;$(ReleaseConstants);WIN32_LEAN_AND_MEAN;NOMINMAX;WINVER=_WIN32_WINNT_WIN8;_WIN32_WINNT=_WIN32_WINNT_WIN8;PSAPI_VERSION=1;_HAS_AUTO_PTR_ETC=0;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_DEBUG;gsl_FEATURE_WITH_CONTAINER_TO_STD=14;gsl_FEATURE_MAKE_SPAN_TO_STD=14;gsl_FEATURE_BYTE_SPAN_TO_STD=14;gsl_FEATURE_OWNER_MACRO=0;%(PreprocessorDefinitions) - $(IntDir)src;$(ProjectDir)src;$(ProjectDir)lib;$(SolutionDir)extern\luajit\repo\src;%(AdditionalIncludeDirectories) - true - MultiThreadedDebug - true - /utf-8 /Zc:externConstexpr /Zc:throwingNew /Zc:__cplusplus - Async - $(IntDir)\%(RelativeDir) - stdcpplatest - true - true - TurnOffAllWarnings - true - true - false - - - $(SolutionDir)build\lib\luajit\$(Configuration)\;%(AdditionalLibraryDirectories) - $(ProjectName).def - lua51.static.lib;shlwapi.lib;dbghelp.lib;winhttp.lib;imm32.lib;dwrite.lib;d2d1.lib;windowscodecs.lib;icu.lib;%(AdditionalDependencies) - - - $(IntDir)src;$(ProjectDir)src;%(AdditionalIncludeDirectories) - WINDOWER_AUTO_VERSION;$(ReleaseConstants);%(PreprocessorDefinitions) - /c 1252 - - - - - Level4 - MaxSpeed - true - true - true - WINDOWER_AUTO_VERSION;$(ReleaseConstants);WIN32_LEAN_AND_MEAN;NOMINMAX;WINVER=_WIN32_WINNT_WIN8;_WIN32_WINNT=_WIN32_WINNT_WIN8;PSAPI_VERSION=1;_HAS_AUTO_PTR_ETC=0;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;gsl_FEATURE_WITH_CONTAINER_TO_STD=14;gsl_FEATURE_MAKE_SPAN_TO_STD=14;gsl_FEATURE_BYTE_SPAN_TO_STD=14;gsl_FEATURE_OWNER_MACRO=0;%(PreprocessorDefinitions) - $(IntDir)src;$(ProjectDir)src;$(ProjectDir)lib;$(SolutionDir)extern\luajit\repo\src;%(AdditionalIncludeDirectories) - true - MultiThreaded - true - /utf-8 /Zc:externConstexpr /Zc:throwingNew /Zc:__cplusplus - - - - Async - $(IntDir)\%(RelativeDir) - stdcpplatest - true - true - TurnOffAllWarnings - true - false - true - true - - - true - true - $(SolutionDir)build\lib\luajit\$(Configuration)\;%(AdditionalLibraryDirectories) - $(ProjectName).def - lua51.static.lib;shlwapi.lib;dbghelp.lib;winhttp.lib;imm32.lib;dwrite.lib;d2d1.lib;windowscodecs.lib;icu.lib;%(AdditionalDependencies) - true - - - $(IntDir)src;$(ProjectDir)src;%(AdditionalIncludeDirectories) - WINDOWER_AUTO_VERSION;$(ReleaseConstants);%(PreprocessorDefinitions) - /c 1252 - - - - @@ -641,4 +625,4 @@ - \ No newline at end of file + diff --git a/core/src/utilities/coroutine.hpp b/core/src/utilities/coroutine.hpp index 5447303..f807f85 100755 --- a/core/src/utilities/coroutine.hpp +++ b/core/src/utilities/coroutine.hpp @@ -93,7 +93,7 @@ auto operator co_await(std::future future) noexcept { bool await_ready() const noexcept { - return this->wait_for(std::chrono::seconds(0)) != + return this->wait_for(std::chrono::seconds::zero()) != std::future_status::timeout; } From 6cd0228e075d16f5b91755ce53c51180ca5035ce Mon Sep 17 00:00:00 2001 From: Stjepan Bakrac Date: Wed, 3 Jun 2026 20:54:52 +0200 Subject: [PATCH 2/2] CI: Fixed submodule fetch --- .github/workflows/ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b23eb4e..a468e8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ on: env: SYMBOLS_DAYS_TO_KEEP: 14 SYMBOLS_KEEP_LAST: 10 - + defaults: run: shell: pwsh @@ -29,6 +29,7 @@ jobs: with: path: main submodules: recursive + fetch-depth: 0 - name: Checkout branding if: github.repository == 'Windower/Fenestra' && github.event_name == 'push' uses: actions/checkout@v6 @@ -53,4 +54,4 @@ jobs: - name: Index sources run: | Set-Location main - .github/workflows/index-sources \ No newline at end of file + .github/workflows/index-sources