diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a410995..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 @@ -17,35 +17,29 @@ 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 + fetch-depth: 0 - 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 @@ -61,69 +55,3 @@ jobs: 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' }} 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; }