diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index e04ffd9..8a38184 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -8,171 +8,6 @@ on: - '**/*.md' jobs: - linux-xenial: - runs-on: ubuntu-latest - strategy: - matrix: - compiler: [clang4] - steps: - - name: Git checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: Building (debug-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build' - - name: Running unit tests (debug-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (debug-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build' - - name: Running unit tests (debug-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (release-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build' - - name: Running unit tests (release-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (release-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build' - - name: Running unit tests (release-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-xenial:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test' - - linux-bionic: - runs-on: ubuntu-latest - strategy: - matrix: - compiler: [gcc5, gcc6, gcc7, gcc8, clang5, clang6, clang7, clang8, clang9, clang10] - steps: - - name: Git checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: Building (debug-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build' - - name: Running unit tests (debug-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (debug-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build' - - name: Running unit tests (debug-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (release-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build' - - name: Running unit tests (release-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (release-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build' - - name: Running unit tests (release-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-bionic:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test' - - linux-focal: - runs-on: ubuntu-latest - strategy: - matrix: - compiler: [gcc9, gcc10, gcc11, clang11, clang12, clang13, clang14] - steps: - - name: Git checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: Building (debug-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -build' - - name: Running unit tests (debug-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x86 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (debug-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -build' - - name: Running unit tests (debug-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Debug -cpu x64 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (release-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -build' - - name: Running unit tests (release-x86) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x86 -unit_test' - - name: Clean - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -clean_only' - - name: Building (release-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -build' - - name: Running unit tests (release-x64) - uses: docker://ghcr.io/nfrechette/toolchain-amd64-focal:v1 - with: - args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test' - linux-lunar: runs-on: ubuntu-latest strategy: @@ -228,42 +63,11 @@ jobs: with: args: 'python3 make.py -ci -compiler ${{ matrix.compiler }} -config Release -cpu x64 -unit_test' - osx-12: - runs-on: macos-12 - strategy: - matrix: - compiler: [xcode13] - steps: - - name: Git checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: Setup ${{ matrix.compiler }} compiler - run: ./tools/setup_osx_compiler.sh ${{ matrix.compiler }} - - name: Building (debug-x64) - run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -build - - name: Running unit tests (debug-x64) - run: python3 make.py -ci -compiler osx -config Debug -cpu x64 -unit_test - - name: Clean - run: python3 make.py -clean_only - - name: Building (release-x64) - run: python3 make.py -ci -compiler osx -config Release -cpu x64 -build - - name: Running unit tests (release-x64) - run: python3 make.py -ci -compiler osx -config Release -cpu x64 -unit_test - - name: Clean - run: python3 make.py -clean_only - - name: Building for iOS (debug-arm64) - run: python3 make.py -ci -compiler ios -config Debug -build - - name: Clean - run: python3 make.py -clean_only - - name: Building for iOS (release-arm64) - run: python3 make.py -ci -compiler ios -config Release -build - osx-14: runs-on: macos-14 strategy: matrix: - compiler: [xcode14, xcode15] + compiler: [xcode15, xcode16] steps: - name: Git checkout uses: actions/checkout@v4 @@ -318,44 +122,6 @@ jobs: with: args: 'python3 make.py -ci -compiler emscripten -config release -unit_test' - vs2019: - runs-on: windows-2019 - steps: - - name: Git checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: Building (debug-x64) - run: python3 make.py -ci -compiler vs2019 -config Debug -cpu x64 -build - - name: Running unit tests (debug-x64) - run: python3 make.py -ci -compiler vs2019 -config Debug -cpu x64 -unit_test - - name: Clean - run: python3 make.py -clean_only - - name: Building (release-x64) - run: python3 make.py -ci -compiler vs2019 -config Release -cpu x64 -build - - name: Running unit tests (release-x64) - run: python3 make.py -ci -compiler vs2019 -config Release -cpu x64 -unit_test - - name: Clean - run: python3 make.py -clean_only - - name: Building (debug-arm64) - run: python3 make.py -ci -compiler vs2019 -config Debug -cpu arm64 -build - - name: Clean - run: python3 make.py -clean_only - - name: Building (release-arm64) - run: python3 make.py -ci -compiler vs2019 -config Release -cpu arm64 -build - - name: Clean - run: python3 make.py -clean_only - - name: Building (debug-x64) with Clang - run: python3 make.py -ci -compiler vs2019-clang -config Debug -cpu x64 -build - - name: Running unit tests (debug-x64) with Clang - run: python3 make.py -ci -compiler vs2019-clang -config Debug -cpu x64 -unit_test - - name: Clean - run: python3 make.py -clean_only - - name: Building (release-x64) with Clang - run: python3 make.py -ci -compiler vs2019-clang -config Release -cpu x64 -build - - name: Running unit tests (release-x64) with Clang - run: python3 make.py -ci -compiler vs2019-clang -config Release -cpu x64 -unit_test - vs2022: runs-on: windows-2022 steps: diff --git a/.github/workflows/msvc-analysis.yml b/.github/workflows/msvc-analysis.yml index 8a8d829..7743c00 100644 --- a/.github/workflows/msvc-analysis.yml +++ b/.github/workflows/msvc-analysis.yml @@ -26,7 +26,7 @@ jobs: runs-on: windows-2022 steps: - name: Git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: 'recursive' - name: Generate solution (release-x64) @@ -42,11 +42,11 @@ jobs: - name: Upload SARIF to GitHub # Can only upload SARIF if we don't come from a fork if: ${{ needs.condition-check.outputs.ok == 'true' }} - uses: github/codeql-action/upload-sarif@v2 + uses: github/codeql-action/upload-sarif@v3 with: sarif_file: ${{ steps.run-analysis.outputs.sarif }} - name: Upload SARIF as an Artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: sarif-file path: ${{ steps.run-analysis.outputs.sarif }} diff --git a/CMakeLists.txt b/CMakeLists.txt index dbdfa37..a12fa75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.2) +cmake_minimum_required(VERSION 3.2...3.25) project(sjson-cpp CXX) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") diff --git a/cmake/CMakeCompiler.cmake b/cmake/CMakeCompiler.cmake index 95faa15..07aec88 100644 --- a/cmake/CMakeCompiler.cmake +++ b/cmake/CMakeCompiler.cmake @@ -1,5 +1,3 @@ -cmake_minimum_required (VERSION 3.2) - macro(setup_default_compiler_flags _project_name) if(MSVC) # Replace some default compiler switches and add new ones diff --git a/cmake/CMakePlatforms.cmake b/cmake/CMakePlatforms.cmake index 8f88f16..8d5b8f2 100644 --- a/cmake/CMakePlatforms.cmake +++ b/cmake/CMakePlatforms.cmake @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 3.2) - if(PLATFORM_NAME) return() # Already set endif() diff --git a/cmake/CMakeUtils.cmake b/cmake/CMakeUtils.cmake index c18543f..52e4673 100644 --- a/cmake/CMakeUtils.cmake +++ b/cmake/CMakeUtils.cmake @@ -1,5 +1,3 @@ -cmake_minimum_required (VERSION 3.2) - # Create groups for the test source files, this creates the proper directory structure under the # Visual Studio filters macro(create_source_groups _source_files _relative_directory) diff --git a/cmake/Toolchain-Android.cmake b/cmake/Toolchain-Android.cmake index c5570d4..c91a8ea 100644 --- a/cmake/Toolchain-Android.cmake +++ b/cmake/Toolchain-Android.cmake @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 3.2) - # For Android, we just set the platform name as we won't be using CMake to build anything. # Instead Gradle is used through CMake. diff --git a/cmake/Toolchain-iOS.cmake b/cmake/Toolchain-iOS.cmake index ffa914f..2d710d5 100644 --- a/cmake/Toolchain-iOS.cmake +++ b/cmake/Toolchain-iOS.cmake @@ -1,5 +1,3 @@ -cmake_minimum_required (VERSION 3.2) - set(CMAKE_SYSTEM_NAME Darwin) # Set here instead of CMakePlatforms.cmake since we can't distinguis otherwise diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index de431e6..6931680 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required (VERSION 3.2) project(sjson-cpp_unit_tests_root NONE) if(PLATFORM_ANDROID) diff --git a/tests/main_android/CMakeLists.txt b/tests/main_android/CMakeLists.txt index 79e24ab..8065325 100644 --- a/tests/main_android/CMakeLists.txt +++ b/tests/main_android/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required(VERSION 3.2) project(sjson-cpp_unit_tests_gradle_shim NONE) # Set our project root since our gradle files used to build live in the binary output directory diff --git a/tests/main_android/app/src/main/cpp/CMakeLists.txt b/tests/main_android/app/src/main/cpp/CMakeLists.txt index 879c79e..c615988 100644 --- a/tests/main_android/app/src/main/cpp/CMakeLists.txt +++ b/tests/main_android/app/src/main/cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.2...3.25) project(sjson-cpp_unit_tests CXX) # Project root is \tests\main_android diff --git a/tests/main_emscripten/CMakeLists.txt b/tests/main_emscripten/CMakeLists.txt index 907c2e8..90557c6 100644 --- a/tests/main_emscripten/CMakeLists.txt +++ b/tests/main_emscripten/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required (VERSION 3.2) project(sjson-cpp_unit_tests CXX) include_directories("${PROJECT_SOURCE_DIR}/../../includes") diff --git a/tests/main_generic/CMakeLists.txt b/tests/main_generic/CMakeLists.txt index 248ca16..0cc0c71 100644 --- a/tests/main_generic/CMakeLists.txt +++ b/tests/main_generic/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required (VERSION 3.2) project(sjson-cpp_unit_tests CXX) include_directories("${PROJECT_SOURCE_DIR}/../../includes") diff --git a/tests/main_ios/CMakeLists.txt b/tests/main_ios/CMakeLists.txt index 113caba..f191655 100644 --- a/tests/main_ios/CMakeLists.txt +++ b/tests/main_ios/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required (VERSION 3.2) project(sjson-cpp_unit_tests) # iOS cmake toolchain does not support CMAKE_CXX_STANDARD diff --git a/tests/validate_includes/CMakeLists.txt b/tests/validate_includes/CMakeLists.txt index 18a92cc..09246c1 100644 --- a/tests/validate_includes/CMakeLists.txt +++ b/tests/validate_includes/CMakeLists.txt @@ -1,4 +1,3 @@ -cmake_minimum_required (VERSION 3.2) project(sjson-cpp_validate_includes CXX) # The goal of this project is to generate a single cpp file for every public header diff --git a/tools/setup_osx_compiler.sh b/tools/setup_osx_compiler.sh index 0c4cef9..f611e4e 100755 --- a/tools/setup_osx_compiler.sh +++ b/tools/setup_osx_compiler.sh @@ -5,7 +5,7 @@ COMPILER=$1 # See Github hosted runners: # macos-14: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md -# xcode 14.3.1, 15.0.1, 15.1, 15.2, 15.3, 15.4, 16.0 +# xcode 15.0.1, 15.1, 15.2, 15.3, 15.4, 16.1, 16.2 # macos-13: https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md # xcode 14.1, 14.2, 14.3.1, 15.0.1, 15.1, 15.2 # macos-12: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md @@ -28,9 +28,9 @@ elif [[ $COMPILER == xcode13 ]]; then elif [[ $COMPILER == xcode14 ]]; then XCODE_PATH="/Applications/Xcode_14.3.1.app" elif [[ $COMPILER == xcode15 ]]; then - XCODE_PATH="/Applications/Xcode_15.2.app" + XCODE_PATH="/Applications/Xcode_15.4.app" elif [[ $COMPILER == xcode16 ]]; then - XCODE_PATH="/Applications/Xcode_16.0.app" + XCODE_PATH="/Applications/Xcode_16.2.app" fi # Select our XCode version