From c19ed06e9e752a68503b90bf2fe3745e465a4405 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 18 Apr 2025 13:12:23 +0200 Subject: [PATCH 01/15] appveyor.yml: set up Visual Studio before invoking CMake --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 09aa6cbe..0147bda4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,9 +10,9 @@ environment: build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudioVersion% using %PlatformToolset% PlatformToolset + - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudioVersion%\VC\vcvarsall.bat" %vcvarsall_platform%' - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio 14" . - dir - - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudioVersion%\VC\vcvarsall.bat" %vcvarsall_platform%' - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%platform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From ee07c8fcf25feb500fe7ce4382622d4a532c1154 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 18 Apr 2025 13:05:34 +0200 Subject: [PATCH 02/15] appveyor.yml: added Visual Studio 2017 and 2019 / added x64 builds --- appveyor.yml | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 0147bda4..f1d72ad5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,19 +2,49 @@ version: 1.{build} environment: matrix: - - VisualStudioVersion: 14.0 - platform: "Win32" + - VisualStudio: 14.0 + VisualStudioGenerator: "14 2015" + ConfigurationPlatform: "Win32" configuration: "Debug" vcvarsall_platform: "x86" PlatformToolset: "v140" + - VisualStudio: 14.0 + VisualStudioGenerator: "14 2015" + ConfigurationPlatform: "Win64" + configuration: "Debug" + vcvarsall_platform: "x64" + PlatformToolset: "v140" + - VisualStudio: 2017 + VisualStudioGenerator: "15 2017" + ConfigurationPlatform: "Win32" + configuration: "Debug" + vcvarsall_platform: "x86" + PlatformToolset: "v141" + - VisualStudio: 2017 + VisualStudioGenerator: "15 2017" + ConfigurationPlatform: "Win64" + configuration: "Debug" + vcvarsall_platform: "x64" + PlatformToolset: "v141" + - VisualStudio: 2019 + VisualStudioGenerator: "16 2019" + ConfigurationPlatform: "Win32" + configuration: "Debug" + vcvarsall_platform: "x86" + PlatformToolset: "v142" + - VisualStudio: 2019 + VisualStudioGenerator: "16 2019" + ConfigurationPlatform: "Win64" + configuration: "Debug" + vcvarsall_platform: "x64" + PlatformToolset: "v142" build_script: - - ECHO Building %configuration% %platform% with MSVC %VisualStudioVersion% using %PlatformToolset% PlatformToolset - - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudioVersion%\VC\vcvarsall.bat" %vcvarsall_platform%' - - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio 14" . - - dir + - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (%VisualStudioGenerator%) using %PlatformToolset% PlatformToolset + - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudio%\VC\vcvarsall.bat" %vcvarsall_platform%' + - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G %VisualStudioGenerator%" . - set _CL_=/WX - - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%platform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" + - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" test_script: - debug\testrunner.exe From 123be2fa8c7aec898fba4bb3016989538b55edb7 Mon Sep 17 00:00:00 2001 From: firewave Date: Tue, 10 Jun 2025 20:12:59 +0200 Subject: [PATCH 03/15] s --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index f1d72ad5..a8b9b57b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,7 +10,7 @@ environment: PlatformToolset: "v140" - VisualStudio: 14.0 VisualStudioGenerator: "14 2015" - ConfigurationPlatform: "Win64" + ConfigurationPlatform: "x64" configuration: "Debug" vcvarsall_platform: "x64" PlatformToolset: "v140" @@ -22,7 +22,7 @@ environment: PlatformToolset: "v141" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" - ConfigurationPlatform: "Win64" + ConfigurationPlatform: "x64" configuration: "Debug" vcvarsall_platform: "x64" PlatformToolset: "v141" @@ -34,7 +34,7 @@ environment: PlatformToolset: "v142" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" - ConfigurationPlatform: "Win64" + ConfigurationPlatform: "x64" configuration: "Debug" vcvarsall_platform: "x64" PlatformToolset: "v142" From 3e037961688ed1c16a28a174c84cfc77549eb530 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 11:31:24 +0200 Subject: [PATCH 04/15] s --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index a8b9b57b..7be87c51 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -42,7 +42,7 @@ environment: build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (%VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudio%\VC\vcvarsall.bat" %vcvarsall_platform%' - - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G %VisualStudioGenerator%" . + - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G %VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From bf3c36d46e089741caf910cc9bc2cca3bdcbd89b Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 11:31:57 +0200 Subject: [PATCH 05/15] remove --- .github/workflows/CI-unixish.yml | 194 ------------------------------- .github/workflows/CI-windows.yml | 82 ------------- .github/workflows/clang-tidy.yml | 51 -------- .github/workflows/format.yml | 62 ---------- 4 files changed, 389 deletions(-) delete mode 100644 .github/workflows/CI-unixish.yml delete mode 100644 .github/workflows/CI-windows.yml delete mode 100644 .github/workflows/clang-tidy.yml delete mode 100644 .github/workflows/format.yml diff --git a/.github/workflows/CI-unixish.yml b/.github/workflows/CI-unixish.yml deleted file mode 100644 index 1a4ce649..00000000 --- a/.github/workflows/CI-unixish.yml +++ /dev/null @@ -1,194 +0,0 @@ -name: CI-unixish - -on: [push, pull_request] - -permissions: - contents: read - -jobs: - build: - - strategy: - matrix: - os: [ubuntu-22.04, ubuntu-22.04-arm, ubuntu-24.04, ubuntu-24.04-arm, macos-14, macos-15, macos-15-intel, macos-26, macos-26-intel] - compiler: [clang++] - include: - - os: ubuntu-22.04 - compiler: g++ - - os: ubuntu-24.04 - compiler: g++ - fail-fast: false - - runs-on: ${{ matrix.os }} - - env: - CXX: ${{ matrix.compiler }} - - steps: - - uses: actions/checkout@v6 - with: - persist-credentials: false - - # the man-db trigger causes package installations to stall for several minutes at times. so just drop the package. - # see https://github.com/actions/runner/issues/4030 - - name: Remove man-db package on ubuntu - if: matrix.os == 'ubuntu-24.04' - run: | - sudo apt-get update - sudo apt-get remove man-db - - - name: Install missing software on ubuntu - if: matrix.os == 'ubuntu-24.04' - run: | - sudo apt-get update - sudo apt-get install valgrind - - # llvm contains llvm-profdata - - name: Install missing software on ubuntu (clang++) - if: contains(matrix.os, 'ubuntu') && matrix.compiler == 'clang++' - run: | - sudo apt-get update - sudo apt-get install libc++-dev llvm - - # coreutils contains "nproc" - - name: Install missing software on macos - if: contains(matrix.os, 'macos') - run: | - brew install coreutils - - - name: Install missing Python packages - run: | - python3 -m pip config set global.break-system-packages true - python3 -m pip install pytest - - - name: make simplecpp - run: make -j$(nproc) CXXOPTS="-Werror" - - - name: make test - run: make -j$(nproc) test CXXOPTS="-Werror" - - - name: selfcheck - run: | - make -j$(nproc) selfcheck - - - name: make (c++14) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++14" - - - name: make (c++17) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++17" - - - name: make (c++20) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++20" - - - name: make (c++23) - run: | - make clean - # ubuntu-22.04 and macos-14 do not support c++23 yet - make -j$(nproc) CXXOPTS="-Werror -std=c++2b" - - - name: Run CMake - run: | - cmake -S . -B cmake.output -Werror=dev --warn-uninitialized -DCMAKE_COMPILE_WARNING_AS_ERROR=On - - - name: CMake simplecpp - run: | - cmake --build cmake.output --target simplecpp -- -j $(nproc) - - - name: CMake testrunner - run: | - cmake --build cmake.output --target testrunner -- -j $(nproc) - ./cmake.output/testrunner - # Re-run tests from within the build directory to validate that - # SIMPLECPP_TEST_SOURCE_DIR is correctly defined and resolved - (cd cmake.output && ./testrunner) - - - name: Run valgrind - if: matrix.os == 'ubuntu-24.04' - run: | - make clean - make -j$(nproc) CXXOPTS="-O1" - valgrind --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --gen-suppressions=all --error-exitcode=42 ./testrunner - # TODO: run Python tests with valgrind - VALGRIND_TOOL=memcheck ./selfcheck.sh - - - name: Run with libstdc++ debug mode - if: matrix.os == 'ubuntu-24.04' && matrix.compiler == 'g++' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -g3 -D_GLIBCXX_DEBUG" - - - name: Run with libc++ hardening mode - if: matrix.os == 'ubuntu-24.04' && matrix.compiler == 'clang++' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -stdlib=libc++ -g3 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG" LDOPTS="-lc++" - - - name: Run AddressSanitizer - if: matrix.os == 'ubuntu-24.04' || matrix.os == 'macos-26' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -O2 -g3 -fsanitize=address" LDOPTS="-fsanitize=address" - env: - ASAN_OPTIONS: detect_stack_use_after_return=1 - - - name: Run UndefinedBehaviorSanitizer - if: matrix.os == 'ubuntu-24.04' || matrix.os == 'macos-26' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -O2 -g3 -fsanitize=undefined -fno-sanitize=signed-integer-overflow" LDOPTS="-fsanitize=undefined -fno-sanitize=signed-integer-overflow" - env: - UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1:report_error_type=1 - - # TODO: requires instrumented libc++ - - name: Run MemorySanitizer - if: false && matrix.os == 'ubuntu-24.04' && matrix.compiler == 'clang++' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -O2 -g3 -stdlib=libc++ -fsanitize=memory" LDOPTS="-lc++ -fsanitize=memory" - - - name: Run callgrind - if: matrix.os == 'ubuntu-24.04' - run: | - wget https://github.com/danmar/simplecpp/archive/refs/tags/1.5.1.tar.gz - tar xvf 1.5.1.tar.gz - rm -f 1.5.1.tar.gz - - make clean - make -j$(nproc) CXXOPTS="-O2 -g3" simplecpp - VALGRIND_TOOL=callgrind SIMPLECPP_PATH=simplecpp-1.5.1 ./selfcheck.sh >callgrind.log || (cat callgrind.log && false) - cat callgrind.log - - # PGO - start - make clean - make -j$(nproc) CXXOPTS="-O2 -g3 -fprofile-generate" LDOPTS="-fprofile-generate" simplecpp - SIMPLECPP_PATH=simplecpp-1.5.1 ./selfcheck.sh >/dev/null - - if compgen -G "default_*.profraw" > /dev/null; then - llvm-profdata merge -output=default.profdata default_*.profraw - fi - - make clean - make -j$(nproc) CXXOPTS="-O2 -g3 -fprofile-use" LDOPTS="-fprofile-use" simplecpp - VALGRIND_TOOL=callgrind SIMPLECPP_PATH=simplecpp-1.5.1 ./selfcheck.sh >callgrind_pgo.log || (cat callgrind_pgo.log && false) - cat callgrind_pgo.log - # PGO - end - - for f in callgrind.out.*; - do - callgrind_annotate --auto=no $f > $f.annotated.log - head -50 $f.annotated.log - done - rm -rf simplecpp-1.5.1 - - - uses: actions/upload-artifact@v4 - if: matrix.os == 'ubuntu-24.04' - with: - name: Callgrind Output - ${{ matrix.compiler }} - path: | - ./callgrind.* diff --git a/.github/workflows/CI-windows.yml b/.github/workflows/CI-windows.yml deleted file mode 100644 index cfced0d2..00000000 --- a/.github/workflows/CI-windows.yml +++ /dev/null @@ -1,82 +0,0 @@ -# Some convenient links: -# - https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md -# - -name: CI-windows - -on: [push,pull_request] - -permissions: - contents: read - -defaults: - run: - shell: cmd - -jobs: - - build: - strategy: - matrix: - os: [windows-2022, windows-2025, windows-11-arm] - config: [Release, Debug] - fail-fast: false - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v6 - with: - persist-credentials: false - - - name: Setup msbuild.exe - uses: microsoft/setup-msbuild@v2 - - - name: Set up Python - uses: actions/setup-python@v6 - with: - python-version: '3.14' - check-latest: true - - - name: Install missing Python packages - run: | - python -m pip install pip --upgrade || exit /b !errorlevel! - python -m pip install pytest || exit /b !errorlevel! - - - name: Run CMake - run: | - cmake -G "Visual Studio 17 2022" -A x64 -Werror=dev --warn-uninitialized -DCMAKE_COMPILE_WARNING_AS_ERROR=On . || exit /b !errorlevel! - - - name: Build - run: | - msbuild -m simplecpp.sln /p:Configuration=${{ matrix.config }} /p:Platform=x64 || exit /b !errorlevel! - - - name: Test - run: | - .\${{ matrix.config }}\testrunner.exe || exit /b !errorlevel! - - - name: Selfcheck - run: | - .\${{ matrix.config }}\simplecpp.exe simplecpp.cpp -e || exit /b !errorlevel! - - - name: integration test - run: | - set SIMPLECPP_EXE_PATH=.\${{ matrix.config }}\simplecpp.exe - python -m pytest integration_test.py -vv || exit /b !errorlevel! - - - name: Run CMake (c++17) - run: | - cmake -S . -B build.cxx17 -G "Visual Studio 17 2022" -A x64 -Werror=dev --warn-uninitialized -DCMAKE_CXX_STANDARD=17 -DCMAKE_COMPILE_WARNING_AS_ERROR=On || exit /b !errorlevel! - - - name: Build (c++17) - run: | - msbuild -m build.cxx17\simplecpp.sln /p:Configuration=${{ matrix.config }} /p:Platform=x64 || exit /b !errorlevel! - - - name: Run CMake (c++20) - run: | - cmake -S . -B build.cxx20 -G "Visual Studio 17 2022" -A x64 -Werror=dev --warn-uninitialized -DCMAKE_CXX_STANDARD=20 -DCMAKE_COMPILE_WARNING_AS_ERROR=On || exit /b !errorlevel! - - - name: Build (c++20) - run: | - msbuild -m build.cxx20\simplecpp.sln /p:Configuration=${{ matrix.config }} /p:Platform=x64 || exit /b !errorlevel! - diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml deleted file mode 100644 index 333672d7..00000000 --- a/.github/workflows/clang-tidy.yml +++ /dev/null @@ -1,51 +0,0 @@ -# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions -# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners -name: clang-tidy - -on: [push, pull_request] - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-24.04 - - steps: - - uses: actions/checkout@v6 - with: - persist-credentials: false - - # the man-db trigger causes package installations to stall for several minutes at times. so just drop the package. - # see https://github.com/actions/runner/issues/4030 - - name: Remove man-db package - run: | - sudo apt-get update - sudo apt-get remove man-db - - - name: Install missing software - run: | - sudo apt-get update - sudo apt-get install -y cmake make - - - name: Install clang - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x llvm.sh - sudo ./llvm.sh 22 - sudo apt-get install clang-tidy-22 - - - name: Verify clang-tidy configuration - run: | - clang-tidy-22 --verify-config - - - name: Prepare CMake - run: | - cmake -S . -B cmake.output -Werror=dev --warn-uninitialized -DCMAKE_CXX_STANDARD=23 -DCMAKE_COMPILE_WARNING_AS_ERROR=On -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - env: - CXX: clang-22 - - - name: Clang-Tidy - run: | - run-clang-tidy-22 -q -j $(nproc) -enable-check-profile -p=cmake.output diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml deleted file mode 100644 index e9f1361d..00000000 --- a/.github/workflows/format.yml +++ /dev/null @@ -1,62 +0,0 @@ -# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions -# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners -name: format - -on: - push: - branches: - - 'master' - - 'releases/**' - - '1.*' - tags: - - '1.*' - pull_request: - -permissions: - contents: read - -jobs: - format: - - runs-on: ubuntu-22.04 - - defaults: - run: - shell: bash -euo pipefail {0} - - env: - UNCRUSTIFY_INSTALL_DIR: ${{ github.workspace }}/runformat-uncrustify - - steps: - - uses: actions/checkout@v6 - with: - persist-credentials: false - - - name: Determine uncrustify version - id: get-uncrustify-version - run: | - version="$(./runformat --expected-uncrustify-version)" - echo "Expected uncrustify version: $version" - echo "version=$version" >> "$GITHUB_OUTPUT" - - - name: Set UNCRUSTIFY_VERSION env variable - run: | - version=$(./runformat --expected-uncrustify-version) - echo "version [$version]" - echo "UNCRUSTIFY_VERSION=${version}" >> "$GITHUB_ENV" - - - name: Cache uncrustify - uses: actions/cache@v4 - id: cache-uncrustify - with: - path: ${{ env.UNCRUSTIFY_INSTALL_DIR }} - key: ${{ runner.os }}-uncrustify-${{ steps.get-uncrustify-version.outputs.version }} - - - name: Install uncrustify - if: steps.cache-uncrustify.outputs.cache-hit != 'true' - run: | - ./runformat --install --install-dir "${UNCRUSTIFY_INSTALL_DIR}" - - - name: Uncrustify check - run: | - ./runformat From 6661c300b2b99c2c207225b240753a2df3c31aaa Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 11:34:26 +0200 Subject: [PATCH 06/15] s --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 7be87c51..a3e9b652 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -42,7 +42,7 @@ environment: build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (%VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudio%\VC\vcvarsall.bat" %vcvarsall_platform%' - - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G %VisualStudioGenerator%" -A %ConfigurationPlatform% . + - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "%VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From 97b06d7dc256dd8bc7bf7d6148d2498742ef0b1f Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 11:37:31 +0200 Subject: [PATCH 07/15] s --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index a3e9b652..3020ff22 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -42,7 +42,7 @@ environment: build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (%VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudio%\VC\vcvarsall.bat" %vcvarsall_platform%' - - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "%VisualStudioGenerator%" -A %ConfigurationPlatform% . + - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio %VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From 8ab5b4d367c755049dea72e63980eb90c712c283 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 11:37:39 +0200 Subject: [PATCH 08/15] s --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 3020ff22..7534c720 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -40,7 +40,7 @@ environment: PlatformToolset: "v142" build_script: - - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (%VisualStudioGenerator%) using %PlatformToolset% PlatformToolset + - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudio%\VC\vcvarsall.bat" %vcvarsall_platform%' - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio %VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX From 21ed4ec969693701be772b979b7fbb29781cf859 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 12:28:16 +0200 Subject: [PATCH 09/15] s --- appveyor.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 7534c720..49b96171 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,42 +6,42 @@ environment: VisualStudioGenerator: "14 2015" ConfigurationPlatform: "Win32" configuration: "Debug" - vcvarsall_platform: "x86" PlatformToolset: "v140" + vcvars_call: "\"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat\" x86" - VisualStudio: 14.0 VisualStudioGenerator: "14 2015" ConfigurationPlatform: "x64" configuration: "Debug" - vcvarsall_platform: "x64" PlatformToolset: "v140" + vcvars_call: "\"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat\" x64" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" ConfigurationPlatform: "Win32" configuration: "Debug" - vcvarsall_platform: "x86" PlatformToolset: "v141" + vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" ConfigurationPlatform: "x64" configuration: "Debug" - vcvarsall_platform: "x64" PlatformToolset: "v141" + vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" ConfigurationPlatform: "Win32" configuration: "Debug" - vcvarsall_platform: "x86" PlatformToolset: "v142" + vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" ConfigurationPlatform: "x64" configuration: "Debug" - vcvarsall_platform: "x64" PlatformToolset: "v142" + vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio %VisualStudio%\VC\vcvarsall.bat" %vcvarsall_platform%' + - 'CALL "%vcvars_call%"' - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio %VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From a83dd13ac7029d8457492ddd638080374cd52058 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 12:30:54 +0200 Subject: [PATCH 10/15] s --- appveyor.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 49b96171..57d87a26 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,37 +7,37 @@ environment: ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v140" - vcvars_call: "\"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat\" x86" + vcvars_call: "\"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x86" - VisualStudio: 14.0 VisualStudioGenerator: "14 2015" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v140" - vcvars_call: "\"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat\" x64" + vcvars_call: "\"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x64" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v141" - vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" + vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars32.bat" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v141" - vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" + vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v142" - vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" + vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvars32.bat" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v142" - vcvars_call: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" + vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset From 7049f7f46894df610954128026ed231a8b9a3efc Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 12:31:22 +0200 Subject: [PATCH 11/15] s --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 57d87a26..36f1b98c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -37,7 +37,7 @@ environment: ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v142" - vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" + vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset From 2489fce50054fe1478f117f76077dda63ef47b31 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 12:35:47 +0200 Subject: [PATCH 12/15] s --- appveyor.yml | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 36f1b98c..2f745dce 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,46 +2,34 @@ version: 1.{build} environment: matrix: - - VisualStudio: 14.0 - VisualStudioGenerator: "14 2015" - ConfigurationPlatform: "Win32" - configuration: "Debug" - PlatformToolset: "v140" - vcvars_call: "\"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x86" - - VisualStudio: 14.0 - VisualStudioGenerator: "14 2015" - ConfigurationPlatform: "x64" - configuration: "Debug" - PlatformToolset: "v140" - vcvars_call: "\"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x64" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v141" - vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars32.bat" + vcvars: "vcvars32" - VisualStudio: 2017 VisualStudioGenerator: "15 2017" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v141" - vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" + vcvars: "vcvars64" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v142" - vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvars32.bat" + vcvars: "vcvars32" - VisualStudio: 2019 VisualStudioGenerator: "16 2019" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v142" - vcvars_call: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat" + vcvars: "vcvars64" build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - - 'CALL "%vcvars_call%"' + - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio\%VisualStudio%\Community\VC\Auxiliary\Build\%vcvars%.bat"' - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio %VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From ffa90d1a1ef4a4e8fbdf864d390ebc31d4fb4789 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 29 Aug 2025 13:44:42 +0200 Subject: [PATCH 13/15] s --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 2f745dce..a09fbf24 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -29,7 +29,7 @@ environment: build_script: - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset - - 'CALL "C:\Program Files (x86)\Microsoft Visual Studio\%VisualStudio%\Community\VC\Auxiliary\Build\%vcvars%.bat"' + - CALL "C:\Program Files (x86)\Microsoft Visual Studio\%VisualStudio%\Community\VC\Auxiliary\Build\%vcvars%.bat" - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio %VisualStudioGenerator%" -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" From 9a3377fd14663871f8da1f2636307bf562357b69 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 17 Apr 2026 09:10:23 +0200 Subject: [PATCH 14/15] remove --- .github/workflows/CI-mingw.yml | 141 --------------------------------- 1 file changed, 141 deletions(-) delete mode 100644 .github/workflows/CI-mingw.yml diff --git a/.github/workflows/CI-mingw.yml b/.github/workflows/CI-mingw.yml deleted file mode 100644 index 390de83d..00000000 --- a/.github/workflows/CI-mingw.yml +++ /dev/null @@ -1,141 +0,0 @@ -name: CI-mingw - -on: [push, pull_request] - -permissions: - contents: read - -defaults: - run: - shell: msys2 {0} - -jobs: - build: - - strategy: - matrix: - compiler: [g++, clang++] - # TODO: add MSYS after #556 is fixed - msystem: [MINGW32, MINGW64, CLANG64] - include: - #- msystem: MSYS - # pkg-prefix: '' - - msystem: MINGW32 - pkg-prefix: 'mingw-w64-i686-' - - msystem: MINGW64 - pkg-prefix: 'mingw-w64-x86_64-' - - msystem: CLANG64 - pkg-prefix: 'mingw-w64-clang-x86_64-' - - compiler: g++ - compiler-pkg: gcc - - compiler: clang++ - compiler-pkg: clang - exclude: - - msystem: CLANG64 - compiler: g++ - # the mingw-w64-i686-clang package is no longer available - - msystem: MINGW32 - compiler: clang++ - fail-fast: false - - runs-on: windows-2025 - - env: - CXX: ${{ matrix.compiler }} - - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - - name: Set up MSYS2 - uses: msys2/setup-msys2@v2 - with: - release: false # use pre-installed - msystem: ${{ matrix.msystem }} - # TODO: install mingw-w64-x86_64-make and use mingw32.make instead - currently fails with "Windows Subsystem for Linux has no installed distributions." - # TODO: also run tests with non-prefixed Python? - install: >- - make - ${{ matrix.pkg-prefix }}cmake - ${{ matrix.pkg-prefix }}python - ${{ matrix.pkg-prefix }}python-pytest - - - name: install compiler - run: | - pacman -S --noconfirm ${{ matrix.pkg-prefix }}${{ matrix.compiler-pkg }} - ${CXX} -v - - - name: make simplecpp - run: | - make -j$(nproc) CXXOPTS="-Werror" - - # gcc *and* clang are required to run-tests.py - # install it at this point since it has gcc as dependency which might interfere with the build - - name: install compiler (clang) - if: matrix.compiler == 'g++' - run: | - pacman -S --noconfirm clang - - - name: install compiler (gcc) - if: matrix.compiler == 'clang++' - run: | - pacman -S --noconfirm gcc - - - name: make test - run: | - # TODO: run tests with Windows paths - make -j$(nproc) test - - - name: selfcheck - run: | - # TODO: run tests with Windows paths - make -j$(nproc) selfcheck - - - name: make (c++14) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++14" - - - name: make (c++17) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++17" - - - name: make (c++20) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++20" - - - name: make (c++23) - run: | - make clean - make -j$(nproc) CXXOPTS="-Werror -std=c++23" - - - name: Run CMake - run: | - cmake -S . -B cmake.output -DCMAKE_COMPILE_WARNING_AS_ERROR=On - - - name: CMake simplecpp - run: | - cmake --build cmake.output --target simplecpp -- -j $(nproc) - - - name: CMake testrunner - run: | - cmake --build cmake.output --target testrunner -- -j $(nproc) - - - name: Run testrunner - run: | - ./cmake.output/testrunner - - - name: Run with libstdc++ debug mode - if: matrix.compiler == 'g++' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -g3 -D_GLIBCXX_DEBUG" - - - name: Run with libc++ hardening mode - if: matrix.compiler == 'clang++' && matrix.msystem == 'CLANG64' - run: | - make clean - make -j$(nproc) test selfcheck CXXOPTS="-Werror -stdlib=libc++ -g3 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG" LDOPTS="-lc++" From 5c7d569eb491ed067d968416369cec14d8cdae12 Mon Sep 17 00:00:00 2001 From: firewave Date: Fri, 17 Apr 2026 09:14:48 +0200 Subject: [PATCH 15/15] s --- appveyor.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index a09fbf24..fadf919e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,34 +3,31 @@ version: 1.{build} environment: matrix: - VisualStudio: 2017 - VisualStudioGenerator: "15 2017" ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v141" vcvars: "vcvars32" - VisualStudio: 2017 - VisualStudioGenerator: "15 2017" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v141" vcvars: "vcvars64" - VisualStudio: 2019 - VisualStudioGenerator: "16 2019" ConfigurationPlatform: "Win32" configuration: "Debug" PlatformToolset: "v142" vcvars: "vcvars32" - VisualStudio: 2019 - VisualStudioGenerator: "16 2019" ConfigurationPlatform: "x64" configuration: "Debug" PlatformToolset: "v142" vcvars: "vcvars64" build_script: - - ECHO Building %configuration% %platform% with MSVC %VisualStudio% (Visual Studio %VisualStudioGenerator%) using %PlatformToolset% PlatformToolset + - ECHO Building %configuration% %platform% with MSVC %VisualStudio% using %PlatformToolset% PlatformToolset + - dir "C:\Program Files (x86)" - CALL "C:\Program Files (x86)\Microsoft Visual Studio\%VisualStudio%\Community\VC\Auxiliary\Build\%vcvars%.bat" - - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -G "Visual Studio %VisualStudioGenerator%" -A %ConfigurationPlatform% . + - cmake -DCMAKE_COMPILE_WARNING_AS_ERROR=On -A %ConfigurationPlatform% . - set _CL_=/WX - msbuild "simplecpp.sln" /consoleloggerparameters:Verbosity=minimal /target:Build /property:Configuration="%configuration%";Platform=%ConfigurationPlatform% /p:PlatformToolset=%PlatformToolset% /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"