diff --git a/.github/workflows/cmake_linux.yml b/.github/workflows/cmake_linux.yml index 5dc0387d8..3fb8b0d61 100644 --- a/.github/workflows/cmake_linux.yml +++ b/.github/workflows/cmake_linux.yml @@ -55,6 +55,7 @@ jobs: - name: SDL GUI qt: off qt6: off + slug: -SDL static: on - name: Qt 5 GUI qt: on @@ -121,10 +122,9 @@ jobs: - name: Configure CMake run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} - --toolchain ${{ matrix.environment.toolchain }} + cmake -S . -B build --preset ${{ matrix.build.preset }} + --toolchain ${{ matrix.environment.toolchain }} -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts -D QT=${{ matrix.ui.qt }} -D USE_QT6=${{ matrix.ui.qt6 }} diff --git a/.github/workflows/cmake_macos.yml b/.github/workflows/cmake_macos.yml index c917932fe..ace5314c8 100644 --- a/.github/workflows/cmake_macos.yml +++ b/.github/workflows/cmake_macos.yml @@ -26,11 +26,11 @@ on: jobs: - macos13-x86_64: + macos: - name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64" + name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.arch }}" - runs-on: macos-13 + runs-on: ${{ matrix.environment.runner }} strategy: fail-fast: true @@ -54,12 +54,27 @@ jobs: ui: - name: SDL GUI qt: off + slug: -SDL static: on - - name: Qt GUI + - name: Qt 5 GUI qt: on - slug: -Qt + slug: -Qt5 packages: >- qt@5 + environment: + - arch: x86_64 + toolchain: ./cmake/flags-gcc-x86_64.cmake + slug: -x86_64 + runner: macos-13 + - arch: arm64 + toolchain: ./cmake/llvm-macos-aarch64.cmake + slug: -arm64 + runner: macos-14 + exclude: + - dynarec: + new: off + environment: + arch: arm64 steps: - name: Install dependencies @@ -81,10 +96,9 @@ jobs: - name: Configure CMake run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} - --toolchain ./cmake/flags-gcc-x86_64.cmake + cmake -S . -B build --preset ${{ matrix.build.preset }} + --toolchain ${{ matrix.environment.toolchain }} -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts -D QT=${{ matrix.ui.qt }} -D Qt5_ROOT=$(brew --prefix qt@5) -D Qt5LinguistTools_ROOT=$(brew --prefix qt@5) @@ -100,82 +114,5 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: '86Box${{ matrix.ui.slug }}${{ matrix.dynarec.slug }}${{ matrix.build.slug }}-macOS-x86_64-gha${{ github.run_number }}' - path: build/artifacts/** - - macos14-arm64: - - name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, arm64" - - runs-on: macos-14 - - strategy: - fail-fast: true - matrix: - build: -# - name: Regular -# preset: regular - - name: Debug - preset: dev_debug - slug: -Debug - - name: Dev - preset: development - slug: -Dev - dynarec: -# - name: ODR -# new: off -# slug: -ODR - - name: NDR - new: on - slug: -NDR - ui: - - name: SDL GUI - qt: off - static: on - - name: Qt GUI - qt: on - slug: -Qt - packages: >- - qt@5 - - steps: - - name: Install dependencies - run: >- - brew install - sdl2 - rtmidi - openal-soft - fluidsynth - libslirp - vde - libserialport - ${{ matrix.ui.packages }} - - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - - name: Configure CMake - run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} - --toolchain ./cmake/llvm-macos-aarch64.cmake - -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts - -D QT=${{ matrix.ui.qt }} - -D Qt5_ROOT=$(brew --prefix qt@5) - -D Qt5LinguistTools_ROOT=$(brew --prefix qt@5) - -D OpenAL_ROOT=$(brew --prefix openal-soft) - -D LIBSERIALPORT_ROOT=$(brew --prefix libserialport) - - - name: Build - run: cmake --build build - - - name: Generate package - run: cmake --install build - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: '86Box${{ matrix.ui.slug }}${{ matrix.dynarec.slug }}${{ matrix.build.slug }}-macOS-arm64-gha${{ github.run_number }}' + name: '86Box${{ matrix.ui.slug }}${{ matrix.dynarec.slug }}${{ matrix.build.slug }}-macOS${{ matrix.environment.slug }}-gha${{ github.run_number }}' path: build/artifacts/** diff --git a/.github/workflows/cmake_windows_msys2.yml b/.github/workflows/cmake_windows_msys2.yml index eb83d4674..8959395eb 100644 --- a/.github/workflows/cmake_windows_msys2.yml +++ b/.github/workflows/cmake_windows_msys2.yml @@ -1,4 +1,4 @@ -name: CMake (Windows, msys2) +name: CMake (Windows) on: @@ -26,9 +26,9 @@ on: jobs: - msys2: + windows: - name: "${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.msystem }}" + name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.msystem }}" runs-on: ${{ matrix.environment.runner }} @@ -56,14 +56,15 @@ jobs: new: on slug: -NDR ui: - - name: Qt GUI + - name: Qt 5 GUI qt: on + slug: -Qt5 static: on - slug: -Qt packages: >- - qt5-base:p - qt5-tools:p + qt5-static:p vulkan-headers:p +# qt5-base:p +# qt5-tools:p environment: # - msystem: MSYS # toolchain: ./cmake/flags-gcc-x86_64.cmake @@ -77,10 +78,12 @@ jobs: # prefix: mingw-w64-clang-x86_64 # toolchain: ./cmake/llvm-win32-x86_64.cmake # slug: "CLANG64" +# runner: windows-2022 # - msystem: UCRT64 # prefix: mingw-w64-ucrt-x86_64 # toolchain: ./cmake/flags-gcc-x86_64.cmake # slug: "UCRT64" +# runner: windows-2022 - msystem: CLANGARM64 toolchain: ./cmake/flags-gcc-aarch64.cmake slug: -arm64 @@ -112,8 +115,7 @@ jobs: libslirp:p fluidsynth:p libserialport:p - qt5-static:p - vulkan-headers:p + ${{ matrix.ui.packages }} openmp:p - name: Checkout repository @@ -123,10 +125,10 @@ jobs: - name: Configure CMake run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} + cmake -S . -B build --preset ${{ matrix.build.preset }} --toolchain ${{ matrix.environment.toolchain }} -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts + -D QT=${{ matrix.ui.qt }} - name: Build run: cmake --build build diff --git a/.github/workflows/codeql_linux.yml b/.github/workflows/codeql_linux.yml index b8fb93ef6..957c7090b 100644 --- a/.github/workflows/codeql_linux.yml +++ b/.github/workflows/codeql_linux.yml @@ -33,7 +33,7 @@ jobs: analyze-linux: - name: "Analyze (${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64)" + name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.arch }}" runs-on: ubuntu-22.04 @@ -68,10 +68,13 @@ jobs: ui: - name: SDL GUI qt: off + qt6: off + slug: -SDL static: on - - name: Qt GUI + - name: Qt 5 GUI qt: on - slug: -Qt + qt6: off + slug: -Qt5 packages: >- qtbase5-dev qtbase5-private-dev @@ -79,6 +82,20 @@ jobs: qttranslations5-l10n libevdev-dev libxkbcommon-x11-dev + environment: + - arch: x86_64 + toolchain: ./cmake/flags-gcc-x86_64.cmake + slug: "-x86_64" + runner: ubuntu-22.04 +# - arch: arm64 +# toolchain: ./cmake/flags-gcc-aarch64.cmake +# slug: -arm64 +# runner: ubuntu-22.04-arm +# exclude: +# - dynarec: +# new: off +# environment: +# arch: arm64 steps: - name: Install dependencies @@ -114,11 +131,11 @@ jobs: - name: Configure CMake run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} - --toolchain ./cmake/flags-gcc-x86_64.cmake + cmake -S . -B build --preset ${{ matrix.build.preset }} + --toolchain ${{ matrix.environment.toolchain }} -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts -D QT=${{ matrix.ui.qt }} + -D USE_QT6=${{ matrix.ui.qt6 }} - name: Build run: | @@ -140,4 +157,4 @@ jobs: with: # Consult https://docs.sonarsource.com/sonarqube-server/latest/analyzing-source-code/scanners/sonarscanner/ for more information and options args: > - --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" + --define sonar.cfamily.compile-commands=build/compile_commands.json diff --git a/.github/workflows/codeql_macos.yml b/.github/workflows/codeql_macos.yml index 203f385ff..488cbfd49 100644 --- a/.github/workflows/codeql_macos.yml +++ b/.github/workflows/codeql_macos.yml @@ -31,11 +31,11 @@ on: jobs: - analyze-macos13-x86_64: + analyze-macos: - name: "Analyze (${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64)" + name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.arch }}" - runs-on: macos-13 + runs-on: ${{ matrix.environment.runner }} env: BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed @@ -66,13 +66,29 @@ jobs: new: on slug: -NDR ui: - - name: SDL GUI - qt: off - - name: Qt GUI +# - name: SDL GUI +# qt: off +# slug: -SDL +# static: on + - name: Qt 5 GUI qt: on - slug: -Qt + slug: -Qt5 packages: >- qt@5 + environment: + - arch: x86_64 + toolchain: ./cmake/flags-gcc-x86_64.cmake + slug: -x86_64 + runner: macos-13 +# - arch: arm64 +# toolchain: ./cmake/llvm-macos-aarch64.cmake +# slug: -arm64 +# runner: macos-14 +# exclude: +# - dynarec: +# new: off +# environment: +# arch: arm64 steps: - name: Install dependencies @@ -103,10 +119,9 @@ jobs: - name: Configure CMake run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} - --toolchain ./cmake/flags-gcc-x86_64.cmake + cmake -S . -B build --preset ${{ matrix.build.preset }} + --toolchain ${{ matrix.environment.toolchain }} -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts -D QT=${{ matrix.ui.qt }} -D Qt5_ROOT=$(brew --prefix qt@5) -D Qt5LinguistTools_ROOT=$(brew --prefix qt@5) @@ -133,4 +148,4 @@ jobs: with: # Consult https://docs.sonarsource.com/sonarqube-server/latest/analyzing-source-code/scanners/sonarscanner/ for more information and options args: > - --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" + --define sonar.cfamily.compile-commands=build/compile_commands.json diff --git a/.github/workflows/codeql_windows_msys2.yml b/.github/workflows/codeql_windows_msys2.yml index c7edae77f..d70c6fd5f 100644 --- a/.github/workflows/codeql_windows_msys2.yml +++ b/.github/workflows/codeql_windows_msys2.yml @@ -1,4 +1,4 @@ -name: CodeQL Analysis (Windows, msys2) +name: CodeQL Analysis (Windows) on: @@ -31,9 +31,9 @@ on: jobs: - analyze-msys2: + analyze-windows: - name: "Analyze (${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.msystem }})" + name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.msystem }}" runs-on: ${{ matrix.environment.runner }} @@ -70,14 +70,15 @@ jobs: new: on slug: -NDR ui: - - name: Qt GUI + - name: Qt 5 GUI qt: on + slug: -Qt5 static: off - slug: -Qt packages: >- qt5-base:p qt5-tools:p vulkan-headers:p +# qt5-static:p environment: # - msystem: MSYS # toolchain: ./cmake/flags-gcc-x86_64.cmake @@ -147,10 +148,9 @@ jobs: - name: Configure CMake run: >- - cmake -G Ninja -S . -B build --preset ${{ matrix.build.preset }} + cmake -S . -B build --preset ${{ matrix.build.preset }} --toolchain ${{ matrix.environment.toolchain }} -D NEW_DYNAREC=${{ matrix.dynarec.new }} - -D CMAKE_INSTALL_PREFIX=./build/artifacts -D QT=${{ matrix.ui.qt }} -D STATIC_BUILD=${{ matrix.ui.static }} @@ -177,4 +177,4 @@ jobs: with: # Consult https://docs.sonarsource.com/sonarqube-server/latest/analyzing-source-code/scanners/sonarscanner/ for more information and options args: > - --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" + --define sonar.cfamily.compile-commands=build/compile_commands.json diff --git a/sonar-project.properties b/sonar-project.properties index 781fad035..34cb02b6b 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,12 +1,16 @@ sonar.projectKey=86Box_86Box + sonar.organization=86box # This is the name and version displayed in the SonarCloud UI. -#sonar.projectName=86Box +sonar.projectName=86Box + #sonar.projectVersion=1.0 -# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. +# Path is relative to the sonar-project.properties file. Defaults to . #sonar.sources=. # Encoding of the source code. Default is default system encoding #sonar.sourceEncoding=UTF-8 + +sonar.cfamily.compile-commands=build/compile_commands.json