From a0bc977eb988d88659b425aeaef93b438bbdca2f Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:21:47 +0200 Subject: [PATCH 01/13] Add JUCE versions to build matrix --- .github/workflows/ci.yml | 10 ++++++++-- CMakeLists.txt | 21 +++++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6440a5..c812919 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,6 +34,7 @@ jobs: matrix: app: [ member_enabled, member_disabled, unique_ptr_enabled, unique_ptr_disabled ] os: [ macos-14, windows-2022, ubuntu-latest ] + juce: [ JUCE7, JUCE8 ] steps: - name: Checkout @@ -55,10 +56,15 @@ jobs: xcode-version: latest-stable - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.4 + uses: mozilla-actions/sccache-action@v0.0.5 - name: Configure - run: cmake -B Builds -DTARGET_NAME:STRING=${{ matrix.app }} + run: | + if [ "${{ matrix.juce }}" == "JUCE7" ]; then + cmake -B ${{ env.BUILD_DIR }} -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON + else + cmake -B ${{ env.BUILD_DIR }} -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . + fi - name: Build run: cmake --build Builds --parallel 4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 2565728..daffe3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,14 +9,23 @@ set(CMAKE_CXX_STANDARD_REQUIRED YES) include(FetchContent) if (MelatoninInspector_IS_TOP_LEVEL) + option(JUCE_7 "Run tests on JUCE 7" OFF) + message(STATUS "Cloning JUCE...") + if (JUCE_7) + FetchContent_Declare(JUCE + GIT_REPOSITORY + GIT_TAG 7.0.12 + GIT_PROGRESS TRUE + ) + else () - FetchContent_Declare(JUCE - GIT_REPOSITORY https://github.com/juce-framework/JUCE.git - GIT_TAG origin/master - GIT_SHALLOW TRUE - GIT_PROGRESS TRUE - FIND_PACKAGE_ARGS 7.0.6) + FetchContent_Declare(JUCE + GIT_REPOSITORY https://github.com/juce-framework/JUCE.git + GIT_TAG develop + GIT_PROGRESS TRUE + ) + endif () FetchContent_MakeAvailable(JUCE) From b29e618f024f279bc1711ac7c70e00e1ddd90025 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:24:44 +0200 Subject: [PATCH 02/13] Use explicit Builds directory and make sure sccache is being used --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c812919..8653f21 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ on: - next env: - CMAKE_BUILD_PARALLEL_LEVEL: 3 # Use up to 3 cpus to build juceaide, etc + SCCACHE_GHA_ENABLED: "true" concurrency: group: ${{ github.workflow }}.${{ github.ref }} @@ -61,9 +61,9 @@ jobs: - name: Configure run: | if [ "${{ matrix.juce }}" == "JUCE7" ]; then - cmake -B ${{ env.BUILD_DIR }} -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON + cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON else - cmake -B ${{ env.BUILD_DIR }} -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . + cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . fi - name: Build From a8fba485aae98f882f4ecac54cb47d87af517135 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:28:15 +0200 Subject: [PATCH 03/13] Build with Ninja and dev prompt on Windows --- .github/workflows/ci.yml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8653f21..d86c4e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,11 +42,22 @@ jobs: with: fetch-depth: 1 + - name: Use dev command prompt (Windows) + uses: ilammy/msvc-dev-cmd@v1 + + - name: Install Ninja (Windows) + if: runner.os == 'Windows' + run: choco install ninja + + - name: Install macOS Deps + if: ${{ runner.os == 'macOS' }} + run: brew install ninja osxutils + - name: Install Linux Deps if: runner.os == 'Linux' run: | sudo apt-get update - sudo apt install libasound2-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libfreetype6-dev libglu1-mesa-dev libjack-jackd2-dev + sudo apt install libasound2-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libfreetype6-dev libglu1-mesa-dev libjack-jackd2-dev ninja-build # This block can be removed once 15.1 is default (JUCE requires it when building on macOS 14) - name: Use latest Xcode on system (macOS) @@ -61,9 +72,9 @@ jobs: - name: Configure run: | if [ "${{ matrix.juce }}" == "JUCE7" ]; then - cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON + cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON else - cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . + cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . fi - name: Build From 63e600e37230e7ecd5778bc9e31ded87a91714db Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:35:27 +0200 Subject: [PATCH 04/13] Use JUCE7 as the CMake option for building JUCE 7 --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index daffe3b..3803c13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,10 +9,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED YES) include(FetchContent) if (MelatoninInspector_IS_TOP_LEVEL) - option(JUCE_7 "Run tests on JUCE 7" OFF) + option(JUCE7 "Run tests on JUCE 7" OFF) message(STATUS "Cloning JUCE...") - if (JUCE_7) + if (JUCE7) FetchContent_Declare(JUCE GIT_REPOSITORY GIT_TAG 7.0.12 From dff2a9030a4ad6625fde765373644a8a15b64832 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:39:36 +0200 Subject: [PATCH 05/13] Specify git repo for JUCE 7 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3803c13..f55ea41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ if (MelatoninInspector_IS_TOP_LEVEL) message(STATUS "Cloning JUCE...") if (JUCE7) FetchContent_Declare(JUCE - GIT_REPOSITORY + GIT_REPOSITORY https://github.com/juce-framework/JUCE.git GIT_TAG 7.0.12 GIT_PROGRESS TRUE ) From b50b607f37e1c7d73859cf6a2892615aad5d5547 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:46:49 +0200 Subject: [PATCH 06/13] Make Ninja happy on Windows with /FP (set via /MP) --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index f55ea41..b4303fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,12 @@ if (MelatoninInspector_IS_TOP_LEVEL) JUCE_WEB_BROWSER=0 ) + # https://learn.microsoft.com/en-us/cpp/build/reference/mp-build-with-multiple-processes + # Needed for ninja to be happy in CI + if (MSVC) + add_compile_options(/MP) + endif () + set_target_properties("${TARGET_NAME}" PROPERTIES COMPILE_WARNING_AS_ERROR ON) endif () From f8fcd409f7665bbd0ecb75ceb32e1ef25f089b9f Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 14:48:04 +0200 Subject: [PATCH 07/13] Add missing semicolon so JUCE 7 tests pass --- melatonin/lookandfeel.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/melatonin/lookandfeel.h b/melatonin/lookandfeel.h index 51c2f62..293555a 100644 --- a/melatonin/lookandfeel.h +++ b/melatonin/lookandfeel.h @@ -235,7 +235,7 @@ namespace melatonin #if JUCE_MAJOR_VERSION == 8 juce::Font testFont = juce::FontOptions { "Verdana", 12, juce::Font::FontStyleFlags::plain }; #else - juce::Font testFont = { "Verdana", 12, juce::Font::FontStyleFlags::plain } + juce::Font testFont = { "Verdana", 12, juce::Font::FontStyleFlags::plain }; #endif if (juce::Typeface::createSystemTypefaceFor (testFont)) { inspectorFont = "Verdana"; From 9c7cf5921fff213c76e04ae645ce19c356eb70ff Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 15:30:10 +0200 Subject: [PATCH 08/13] Use CMAKE_CXX_FLAGS instead of add_compile_options --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b4303fe..4473dab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,8 +41,9 @@ if (MelatoninInspector_IS_TOP_LEVEL) # https://learn.microsoft.com/en-us/cpp/build/reference/mp-build-with-multiple-processes # Needed for ninja to be happy in CI + # Hacky, ideally would be add_compile_options, but that didn't work if (MSVC) - add_compile_options(/MP) + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /MP") endif () set_target_properties("${TARGET_NAME}" PROPERTIES COMPILE_WARNING_AS_ERROR ON) From 20a9b60cab60969d423f54aeea48b0fcce7733ee Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 15:40:34 +0200 Subject: [PATCH 09/13] Troubleshoot Windows pdb issue --- .github/workflows/ci.yml | 4 +++- CMakeLists.txt | 7 ------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d86c4e5..f8d20d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: app: [ member_enabled, member_disabled, unique_ptr_enabled, unique_ptr_disabled ] - os: [ macos-14, windows-2022, ubuntu-latest ] + os: [ windows-2022] juce: [ JUCE7, JUCE8 ] steps: @@ -44,6 +44,8 @@ jobs: - name: Use dev command prompt (Windows) uses: ilammy/msvc-dev-cmd@v1 + with: + sdk: 10.0.22621.0 - name: Install Ninja (Windows) if: runner.os == 'Windows' diff --git a/CMakeLists.txt b/CMakeLists.txt index 4473dab..f55ea41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,13 +39,6 @@ if (MelatoninInspector_IS_TOP_LEVEL) JUCE_WEB_BROWSER=0 ) - # https://learn.microsoft.com/en-us/cpp/build/reference/mp-build-with-multiple-processes - # Needed for ninja to be happy in CI - # Hacky, ideally would be add_compile_options, but that didn't work - if (MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /MP") - endif () - set_target_properties("${TARGET_NAME}" PROPERTIES COMPILE_WARNING_AS_ERROR ON) endif () From ba97a614e898599328829c5f48e4fbd55d56d857 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 15:47:05 +0200 Subject: [PATCH 10/13] Attempt to mitigate sccache issues --- CMakeLists.txt | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f55ea41..78feb36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.20) project(MelatoninInspector VERSION 1.3.0 LANGUAGES CXX - DESCRIPTION "JUCE module for inspecting Components" - HOMEPAGE_URL "https://github.com/sudara/melatonin_inspector") + DESCRIPTION "JUCE module for inspecting Components" + HOMEPAGE_URL "https://github.com/sudara/melatonin_inspector") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED YES) @@ -14,16 +14,16 @@ if (MelatoninInspector_IS_TOP_LEVEL) message(STATUS "Cloning JUCE...") if (JUCE7) FetchContent_Declare(JUCE - GIT_REPOSITORY https://github.com/juce-framework/JUCE.git - GIT_TAG 7.0.12 - GIT_PROGRESS TRUE + GIT_REPOSITORY https://github.com/juce-framework/JUCE.git + GIT_TAG 7.0.12 + GIT_PROGRESS TRUE ) else () FetchContent_Declare(JUCE - GIT_REPOSITORY https://github.com/juce-framework/JUCE.git - GIT_TAG develop - GIT_PROGRESS TRUE + GIT_REPOSITORY https://github.com/juce-framework/JUCE.git + GIT_TAG develop + GIT_PROGRESS TRUE ) endif () @@ -31,7 +31,7 @@ if (MelatoninInspector_IS_TOP_LEVEL) SET(TARGET_NAME "unique_ptr_disabled" CACHE STRING "Name of cpp and target to compile") - juce_add_gui_app ("${TARGET_NAME}" VERSION 1.0.0) + juce_add_gui_app("${TARGET_NAME}" VERSION 1.0.0) target_sources("${TARGET_NAME}" PRIVATE "tests/${TARGET_NAME}.cpp") target_compile_definitions("${TARGET_NAME}" PUBLIC @@ -39,6 +39,16 @@ if (MelatoninInspector_IS_TOP_LEVEL) JUCE_WEB_BROWSER=0 ) + # Windows errors due to sccache issues + # see https://github.com/mozilla/sccache/pull/963/files + if (MSVC) + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + elseif (CMAKE_BUILD_TYPE STREQUAL "Release") + string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + endif () + endif () + set_target_properties("${TARGET_NAME}" PROPERTIES COMPILE_WARNING_AS_ERROR ON) endif () @@ -53,9 +63,9 @@ add_library(Melatonin::Inspector ALIAS melatonin_inspector) if (MelatoninInspector_IS_TOP_LEVEL) target_link_libraries("${TARGET_NAME}" PRIVATE melatonin_inspector - juce::juce_recommended_config_flags - juce::juce_recommended_lto_flags - juce::juce_recommended_warning_flags) + juce::juce_recommended_config_flags + juce::juce_recommended_lto_flags + juce::juce_recommended_warning_flags) endif () # Assets are precompiled in the module to make it Projucer friendly From 3413c583b90c48ddcdaa7393b33814fa104abed7 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 15:51:59 +0200 Subject: [PATCH 11/13] Don't let MSVC use /MP --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78feb36..9821ced 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,8 +44,10 @@ if (MelatoninInspector_IS_TOP_LEVEL) if (MSVC) if (CMAKE_BUILD_TYPE STREQUAL "Debug") string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + string(REPLACE "/MP" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") elseif (CMAKE_BUILD_TYPE STREQUAL "Release") string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + string(REPLACE "/MP" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") endif () endif () From efabd8d3c35ad9f36e8f1353c6693efd313d5ebb Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 15:58:36 +0200 Subject: [PATCH 12/13] Try sccache without Ninja on Windows --- .github/workflows/ci.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8d20d1..d18604d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: app: [ member_enabled, member_disabled, unique_ptr_enabled, unique_ptr_disabled ] - os: [ windows-2022] + os: [ macos-14, windows-2022, ubuntu-latest ] juce: [ JUCE7, JUCE8 ] steps: @@ -45,7 +45,7 @@ jobs: - name: Use dev command prompt (Windows) uses: ilammy/msvc-dev-cmd@v1 with: - sdk: 10.0.22621.0 + sdk: 10.0.22621.0 # fixed to break random CI breakage - name: Install Ninja (Windows) if: runner.os == 'Windows' @@ -71,14 +71,22 @@ jobs: - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.5 - - name: Configure + - name: Configure (Windows without Ninja) run: | if [ "${{ matrix.juce }}" == "JUCE7" ]; then - cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON + cmake -B Builds -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON else - cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . + cmake -B Builds-DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . fi + - name: Configure (Non-Windows with Ninja) + run: | + if [ "${{ matrix.juce }}" == "JUCE7" ]; then + cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON + else + cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . + fi + - name: Build run: cmake --build Builds --parallel 4 From 528771a8527c66e02d8ae2125d5db32891808821 Mon Sep 17 00:00:00 2001 From: Sudara Date: Wed, 31 Jul 2024 16:00:53 +0200 Subject: [PATCH 13/13] Don't run ninja on windows due to pdb issue --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d18604d..379fecd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,14 +72,16 @@ jobs: uses: mozilla-actions/sccache-action@v0.0.5 - name: Configure (Windows without Ninja) + if: runner.os == 'Windows' run: | if [ "${{ matrix.juce }}" == "JUCE7" ]; then cmake -B Builds -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON else - cmake -B Builds-DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . + cmake -B Builds -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . fi - name: Configure (Non-Windows with Ninja) + if: runner.os != 'Windows' run: | if [ "${{ matrix.juce }}" == "JUCE7" ]; then cmake -B Builds -G Ninja -DTARGET_NAME:STRING=${{ matrix.app }} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache . -DJUCE7=ON