I can’t generate any Juce project with CMake because juceaide keeps failing to build

I left this project fully funtional in December, in March I cannot build.
This is a re-occuring problem with JUCE, not the first time, rather n-th.
Every couple of months a big search why is does not work again.
Plus, AudioPluginHost is crushing.

JUCE 7.0.10, Win 10, how to make it work again?
(I had to trim the log)

C:\[path]>cmake -Bbuild -GNinja .
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:[path]/scoop/apps/gcc/current/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:[path]/scoop/apps/gcc/current/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring juceaide
-- Building juceaide
CMake Error at vendor/juce/extras/Build/juceaide/CMakeLists.txt:101 (message):
  Failed to build juceaide

  [0/2] Re-checking globbed directories...

  [1/10] Building CXX object
  modules/juce_audio_plugin_client/CMakeFiles/juce_lv2_helper.dir/LV2/juce_LV2TurtleDumpProgram.cpp.obj


  [2/10] Linking CXX executable
  modules\juce_audio_plugin_client\juce_lv2_helper.exe

  [3/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_data_structures/juce_data_structures.cpp.obj


  [4/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.obj

  [5/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/juce_build_tools/juce_build_tools.cpp.obj


  [6/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_events/juce_events.cpp.obj


  [7/10] Building CXX object
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.obj


  FAILED:
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.obj


  C:\[path]\scoop\apps\gcc\current\bin\g++.exe -DDEBUG=1
  -DJUCE_DISABLE_JUCE_VERSION_PRINTING=1
  -DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1
  -DJUCE_MODULE_AVAILABLE_juce_build_tools=1
  -DJUCE_MODULE_AVAILABLE_juce_core=1
  -DJUCE_MODULE_AVAILABLE_juce_data_structures=1
  -DJUCE_MODULE_AVAILABLE_juce_events=1
  -DJUCE_MODULE_AVAILABLE_juce_graphics=1
  -DJUCE_MODULE_AVAILABLE_juce_gui_basics=1 -DJUCE_STANDALONE_APPLICATION=1
  -DJUCE_USE_CURL=0 -D_CONSOLE=1 -D_DEBUG=1
  -IC:[path]/build/vendor/juce/tools/extras/Build/juceaide/juceaide_artefacts/JuceLibraryCode
  -IC:[path]/vendor/juce/extras/Build
  -IC:[path]/vendor/juce/modules
  -Wa,-mbig-obj -g -O0 -Wall -Wextra -Wpedantic -Wstrict-aliasing
  -Wuninitialized -Wunused-parameter -Wsign-compare -Wsign-conversion
  -Wunreachable-code -Wcast-align -Wno-implicit-fallthrough
  -Wno-maybe-uninitialized -Wno-ignored-qualifiers -Wswitch-enum
  -Wredundant-decls -Wno-strict-overflow -Wshadow -Woverloaded-virtual
  -Wreorder -Wzero-as-null-pointer-constant -MD -MT
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.obj
  -MF
  extras\Build\juceaide\CMakeFiles\juceaide.dir\__\__\__\modules\juce_gui_basics\juce_gui_basics.cpp.obj.d
  -o
  extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_gui_basics/juce_gui_basics.cpp.obj
  -c
  C:[path]/vendor/juce/modules/juce_gui_basics/juce_gui_basics.cpp


  In file included from
  C:[path]/vendor/juce/modules/juce_gui_basics/juce_gui_basics.cpp:304:



  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.h:29:
  warning: "UIA_FullDescriptionPropertyId" redefined

     29 | #define UIA_FullDescriptionPropertyId 30159
        |

  In file included from
  C:[path]/scoop/apps/gcc/13.2.0/x86_64-w64-mingw32/include/uiautomation.h:20,


                   from C:[path]/vendor/juce/modules/juce_gui_basics/juce_gui_basics.cpp:70:


  C:[path]/scoop/apps/gcc/13.2.0/x86_64-w64-mingw32/include/uiautomationclient.h:1138:
  note: this is the location of the previous definition

   1138 | #define UIA_FullDescriptionPropertyId (30159)
        |


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.h:30:
  warning: "UIA_IsDialogPropertyId" redefined

     30 | #define UIA_IsDialogPropertyId        30174
        |


  C:[path]/scoop/apps/gcc/13.2.0/x86_64-w64-mingw32/include/uiautomationclient.h:1168:
  note: this is the location of the previous definition

   1168 | #define UIA_IsDialogPropertyId (30174)
        |


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:139:12:
  error: expected unqualified-id before numeric constant

    139 | const long UIA_InvokePatternId = 10000;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:139:12:
  error: expected ')' before numeric constant

    139 | const long UIA_InvokePatternId = 10000;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:140:12:
  error: expected unqualified-id before numeric constant

    140 | const long UIA_SelectionPatternId = 10001;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:140:12:
  error: expected ')' before numeric constant

    140 | const long UIA_SelectionPatternId = 10001;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:141:12:
  error: expected unqualified-id before numeric constant

    141 | const long UIA_ValuePatternId = 10002;
        |            ^~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:141:12:
  error: expected ')' before numeric constant

    141 | const long UIA_ValuePatternId = 10002;
        |            ^~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:142:12:
  error: expected unqualified-id before numeric constant

    142 | const long UIA_RangeValuePatternId = 10003;
        |            ^~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:142:12:
  error: expected ')' before numeric constant

    142 | const long UIA_RangeValuePatternId = 10003;
        |            ^~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:143:12:
  error: expected unqualified-id before numeric constant

    143 | const long UIA_ScrollPatternId = 10004;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:143:12:
  error: expected ')' before numeric constant

    143 | const long UIA_ScrollPatternId = 10004;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:144:12:
  error: expected unqualified-id before numeric constant

    144 | const long UIA_ExpandCollapsePatternId = 10005;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:144:12:
  error: expected ')' before numeric constant

    144 | const long UIA_ExpandCollapsePatternId = 10005;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:145:12:
  error: expected unqualified-id before numeric constant

    145 | const long UIA_GridPatternId = 10006;
        |            ^~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:145:12:
  error: expected ')' before numeric constant

    145 | const long UIA_GridPatternId = 10006;
        |            ^~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:146:12:
  error: expected unqualified-id before numeric constant

    146 | const long UIA_GridItemPatternId = 10007;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:146:12:
  error: expected ')' before numeric constant

    146 | const long UIA_GridItemPatternId = 10007;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:147:12:
  error: expected unqualified-id before numeric constant

    147 | const long UIA_WindowPatternId = 10009;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:147:12:
  error: expected ')' before numeric constant

    147 | const long UIA_WindowPatternId = 10009;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:148:12:
  error: expected unqualified-id before numeric constant

    148 | const long UIA_SelectionItemPatternId = 10010;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:148:12:
  error: expected ')' before numeric constant

    148 | const long UIA_SelectionItemPatternId = 10010;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:149:12:
  error: expected unqualified-id before numeric constant

    149 | const long UIA_TablePatternId = 10012;
        |            ^~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:149:12:
  error: expected ')' before numeric constant

    149 | const long UIA_TablePatternId = 10012;
        |            ^~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:150:12:
  error: expected unqualified-id before numeric constant

    150 | const long UIA_TableItemPatternId = 10013;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:150:12:
  error: expected ')' before numeric constant

    150 | const long UIA_TableItemPatternId = 10013;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:151:12:
  error: expected unqualified-id before numeric constant

    151 | const long UIA_TextPatternId = 10014;
        |            ^~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:151:12:
  error: expected ')' before numeric constant

    151 | const long UIA_TextPatternId = 10014;
        |            ^~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:152:12:
  error: expected unqualified-id before numeric constant

    152 | const long UIA_TogglePatternId = 10015;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:152:12:
  error: expected ')' before numeric constant

    152 | const long UIA_TogglePatternId = 10015;
        |            ^~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:153:12:
  error: expected unqualified-id before numeric constant

    153 | const long UIA_TransformPatternId = 10016;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:153:12:
  error: expected ')' before numeric constant

    153 | const long UIA_TransformPatternId = 10016;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:154:12:
  error: expected unqualified-id before numeric constant

    154 | const long UIA_ScrollItemPatternId = 10017;
        |            ^~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:154:12:
  error: expected ')' before numeric constant

    154 | const long UIA_ScrollItemPatternId = 10017;
        |            ^~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:155:12:
  error: expected unqualified-id before numeric constant

    155 | const long UIA_TextPattern2Id = 10024;
        |            ^~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:155:12:
  error: expected ')' before numeric constant

    155 | const long UIA_TextPattern2Id = 10024;
        |            ^~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:156:12:
  error: expected unqualified-id before numeric constant

    156 | const long UIA_StructureChangedEventId = 20002;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:156:12:
  error: expected ')' before numeric constant

    156 | const long UIA_StructureChangedEventId = 20002;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:157:12:
  error: expected unqualified-id before numeric constant

    157 | const long UIA_MenuOpenedEventId = 20003;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:157:12:
  error: expected ')' before numeric constant

    157 | const long UIA_MenuOpenedEventId = 20003;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:158:12:
  error: expected unqualified-id before numeric constant

    158 | const long UIA_AutomationFocusChangedEventId = 20005;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:158:12:
  error: expected ')' before numeric constant

    158 | const long UIA_AutomationFocusChangedEventId = 20005;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:159:12:
  error: expected unqualified-id before numeric constant

    159 | const long UIA_MenuClosedEventId = 20007;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:159:12:
  error: expected ')' before numeric constant

    159 | const long UIA_MenuClosedEventId = 20007;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:160:12:
  error: expected unqualified-id before numeric constant

    160 | const long UIA_LayoutInvalidatedEventId = 20008;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:160:12:
  error: expected ')' before numeric constant

    160 | const long UIA_LayoutInvalidatedEventId = 20008;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:161:12:
  error: expected unqualified-id before numeric constant

    161 | const long UIA_Invoke_InvokedEventId = 20009;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:161:12:
  error: expected ')' before numeric constant

    161 | const long UIA_Invoke_InvokedEventId = 20009;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:162:12:
  error: expected unqualified-id before numeric constant

    162 | const long UIA_SelectionItem_ElementSelectedEventId = 20012;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:162:12:
  error: expected ')' before numeric constant

    162 | const long UIA_SelectionItem_ElementSelectedEventId = 20012;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:163:12:
  error: expected unqualified-id before numeric constant

    163 | const long UIA_Text_TextSelectionChangedEventId = 20014;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:163:12:
  error: expected ')' before numeric constant

    163 | const long UIA_Text_TextSelectionChangedEventId = 20014;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:164:12:
  error: expected unqualified-id before numeric constant

    164 | const long UIA_Text_TextChangedEventId = 20015;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:164:12:
  error: expected ')' before numeric constant

    164 | const long UIA_Text_TextChangedEventId = 20015;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:165:12:
  error: expected unqualified-id before numeric constant

    165 | const long UIA_Window_WindowOpenedEventId = 20016;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:165:12:
  error: expected ')' before numeric constant

    165 | const long UIA_Window_WindowOpenedEventId = 20016;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:166:12:
  error: expected unqualified-id before numeric constant

    166 | const long UIA_Window_WindowClosedEventId = 20017;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:166:12:
  error: expected ')' before numeric constant

    166 | const long UIA_Window_WindowClosedEventId = 20017;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:167:12:
  error: expected unqualified-id before numeric constant

    167 | const long UIA_IsPeripheralPropertyId = 30150;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:167:12:
  error: expected ')' before numeric constant

    167 | const long UIA_IsPeripheralPropertyId = 30150;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:170:12:
  error: expected unqualified-id before numeric constant

    170 | const long UIA_ButtonControlTypeId = 50000;
        |            ^~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:170:12:
  error: expected ')' before numeric constant

    170 | const long UIA_ButtonControlTypeId = 50000;
        |            ^~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:171:12:
  error: expected unqualified-id before numeric constant

    171 | const long UIA_CheckBoxControlTypeId = 50002;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:171:12:
  error: expected ')' before numeric constant

    171 | const long UIA_CheckBoxControlTypeId = 50002;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:172:12:
  error: expected unqualified-id before numeric constant

    172 | const long UIA_ComboBoxControlTypeId = 50003;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:172:12:
  error: expected ')' before numeric constant

    172 | const long UIA_ComboBoxControlTypeId = 50003;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:173:12:
  error: expected unqualified-id before numeric constant

    173 | const long UIA_EditControlTypeId = 50004;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:173:12:
  error: expected ')' before numeric constant

    173 | const long UIA_EditControlTypeId = 50004;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:174:12:
  error: expected unqualified-id before numeric constant

    174 | const long UIA_HyperlinkControlTypeId = 50005;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:174:12:
  error: expected ')' before numeric constant

    174 | const long UIA_HyperlinkControlTypeId = 50005;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:175:12:
  error: expected unqualified-id before numeric constant

    175 | const long UIA_ImageControlTypeId = 50006;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:175:12:
  error: expected ')' before numeric constant

    175 | const long UIA_ImageControlTypeId = 50006;
        |            ^~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:176:12:
  error: expected unqualified-id before numeric constant

    176 | const long UIA_ListItemControlTypeId = 50007;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:176:12:
  error: expected ')' before numeric constant

    176 | const long UIA_ListItemControlTypeId = 50007;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:177:12:
  error: expected unqualified-id before numeric constant

    177 | const long UIA_ListControlTypeId = 50008;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:177:12:
  error: expected ')' before numeric constant

    177 | const long UIA_ListControlTypeId = 50008;
        |            ^~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:178:12:
  error: expected unqualified-id before numeric constant

    178 | const long UIA_MenuBarControlTypeId = 50010;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:178:12:
  error: expected ')' before numeric constant

    178 | const long UIA_MenuBarControlTypeId = 50010;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:179:12:
  error: expected unqualified-id before numeric constant

    179 | const long UIA_MenuItemControlTypeId = 50011;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:179:12:
  error: expected ')' before numeric constant

    179 | const long UIA_MenuItemControlTypeId = 50011;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:180:12:
  error: expected unqualified-id before numeric constant

    180 | const long UIA_ProgressBarControlTypeId = 50012;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~


  C:[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:180:12:
  error: expected ')' before numeric constant

    180 | const long UIA_ProgressBarControlTypeId = 50012;
        |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

And these are the constants it struggles with:

const long UIA_InvokePatternId = 10000;
const long UIA_SelectionPatternId = 10001;
const long UIA_ValuePatternId = 10002;
.
.
.
1 Like

at first galnce the issue is that mingw define stuff that juce redefine (and as const variable)
like
C:[path]/scoop/apps/gcc/13.2.0/x86_64-w64-mingw32/include/uiautomationclient.h:1138
You could eventually add
#ifndef UIA_FullDescriptionPropertyId
around juce declaration in
modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.h

I would just avoid building with GNU on Windows. Try installing MSVC (Visual Studio) or Clang.

1 Like

@otristan Thank you for your quick answer, both are indeed definded in that file:

#define UIA_FullDescriptionPropertyId 30159
#define UIA_IsDialogPropertyId        30174

Changing it to:

#ifndef UIA_FullDescriptionPropertyId 30159
#ifndef UIA_IsDialogPropertyId        30174

Results in:

C:/[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp:149:86:
  error: invalid use of incomplete type 'class
  juce::AccessibilityNativeHandle'

    149 | JUCE_COMRESULT AccessibilityNativeHandle::QueryInterface (REFIID refId, void** result)
        |                                                                                      ^

  C:/[path]/vendor/juce/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h:29:7:
  note: forward declaration of 'class juce::AccessibilityNativeHandle'

     29 | class AccessibilityNativeHandle;
        |       ^~~~~~~~~~~~~~~~~~~~~~~~~

... etc.

And changing it to:

#ifndef UIA_FullDescriptionPropertyId 
#ifndef UIA_IsDialogPropertyId     

similar.

@eyalamir Thanks! I have been there. In the past I went through VS, Code Blocks and as far as I remember clang as well, had all sort of issues there too. Now, for some months mingw gave me ekhm… stability. This time I do not want to switch around again, this cannot be the approach to working with juce…

Code blocks is an IDE. I’m only talking about the compiler. You can use any IDE you like.

The only compilers that work properly with JUCE/Windows (and most other Windows software) are MSVC and Clang.

This is not how #ifndef works :slight_smile:

Check a tutorial how to use it.
Given your c/c++ knowledge, it might be safer to use VS though

@otristan Right, hope that I am using it correct now:

	
#ifndef UIA_FullDescriptionPropertyId
#define UIA_FullDescriptionPropertyId 30159
#endif

However, errors are still the same:

 C:/[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:139:12:
  error: expected unqualified-id before numeric constant

    139 | const long UIA_InvokePatternId = 10000;
        |            ^~~~~~~~~~~~~~~~~~~

  C:/[path]/vendor/juce/modules/juce_gui_basics/native/accessibility/juce_win32_ComInterfaces.h:139:12:
  error: expected ')' before numeric constant

    139 | const long UIA_InvokePatternId = 10000;
        |            ^~~~~~~~~~~~~~~~~~~

I hope you can see now that the second part of your comment was sort of unnecessary…

If you’re developing on Windows, the best-supported compiler is MSVC, which you can get by installing Visual Studio 2017 or later. Note that Visual Studio Code isn’t officially supported.

Microsoft also provides a version of Clang through the Visual Studio Installer. This version of Clang should be able to build JUCE without any problems. To use it, install it by selecting the optional component in the Visual Studio Installer. Then, pass -T ClangCL when configuring with CMake using one of the Visual Studio generators.

JUCE has limited support for MinGW. This is mainly provided for compatibility with the compiler bundled with CodeBlocks, but support for CodeBlocks is deprecated and will be removed in the near future. The development experience with MinGW is poor: linking takes much longer than with other toolchains, and some features simply do not work (WinRT MIDI, DirectWrite). For these reasons, I’d strongly advise against using MinGW for any new project.

Even if you run into problems with MSVC, this compiler is used much more commonly by JUCE developers, so other users will be better-equipped to help you and answer your questions.

1 Like

you just need to do all the other conflicting ones

Instructing a newer user to modify JUCE sources is setting them up for pain. They may accidentally make a change that breaks their JUCE install completely, or they may run into problems next time they update JUCE and have to reapply/modify their changes. Switching to a better-supported toolchain and using unmodified JUCE sources will be more sustainable in the long-term.

2 Likes

This is why I said first
it might be safer to use VS though

1 Like

OK, so I switched to VS, and does it work → no, for your default audio plugin hello world project. It builds standalone but somehow not without errors VST3 (those two are ticked). I linked Steinberg sdk vst2 in global paths vst legacy sdk, which is probably not needed, but used to be with vst3 in the past. Now, the error I am getting goes:

\Builds.…\Release\VST3\JucePlugIn.dll cannot be started.

There is a thread on it (not one):

“Install it (there’s an option in the Projucer to automatically install the plugin after building it)” - I get it, but: How? Where is it? Did I miss it?
Error code I am getting: MSB3073

However,I can see/use my vst3 plugin in the juce plugin host though and have it in \Debug\VST3\JucePlugIn.vst3\Contents\x86_64-win folder.
Why does this error come up then? Running VS as admin does not help.

This I have: (in my case it’s VS22)

image

@reuk I can only imagine where you would have been as a company if you had made this product accessible for new people. To me, it took 30% of time to develop what I needed and another 70% I lost setting it up (and counting). You made something great what is really hard to access. In my opinion, if not for videos like this, or matkat’s content - it would be very hard to even start using juce in the limtied time I have for the given task. Coding the vst was the easiest part, no issues here, but if I have to google around for hours to make it build again (forced move from mingw to VS), it’s eating it’s own tail. You limit your own customer base big league. Starting with JUCE or re-visiting an old project should be the easiest thing there is.

The VST2 SDK is only needed when building VST2 plugins, or VST3 plugins that are compatible with existing VST2 plugins. If you’re just building a new VST3, you probably don’t need this.

This normally happens when users attempt to run/debug the VST3 itself, which won’t work because a VST3 isn’t an executable program - it needs to run inside a host application.

To debug a VST3, you first need to make sure it’s installed correctly after building. You can either do this manually, or you can enable the “plugin copy step” as part of your build. There’s an option to enable this in the Projucer: go to Exporters → Visual Studio 2022 and click on each configuration (Debug, Release), then change the “Enable Plugin Copy Step” combo box in the settings pane for each configuration. For CMake builds you can set the option JUCE_COPY_PLUGIN_AFTER_BUILD=ON during configuration. To use the plugin copy step, you must first ensure that you have sufficient permissions to write to the install directory (C:\Program Files\Common Files\VST3). It’s probably easiest to just relax the permissions of this directory.

Now, you can either build the plugin from Visual Studio (right-click the VST3 target in the sidebar and select “Build”); or you can set up the debugger to launch a host application by right-clicking the VST3 target, selecting “Properties”, “Debugging”, then specifying a host application. Now, clicking the green “play” button will build the plugin, install it, then launch the host app that you specified.

1 Like

After many months of using JUCE with vscode, today juceaide stopped building and I started getting errors about minGW not being supported. This thread seems to confirm that along with the news (to me at least) that JUCE doesn’t officially support vscode. With CodeBlocks deprecated and vscode hobbled does this mean JUCE is moving away from supporting Linux? Is there a c++ compiler that JUCE, vscode and WIndows 10 are compatible with? I understand that Visual Studio uses a JUCE-compatible compiler (MSVC) but Visual Studio is a hugely bloated piece of software that comes with a whole host of its own problems/bugs that I would rather not have to deal with again.

VSCode/Linux work just fine (with the CMake support).

The only compiler I know that works across all the platforms is Clang, and that one works really well. Clang can be used on Windows with or without Visual Studio - but to my knowledge you still need some minimal version of the Visual Studio toolchain installed even if you don’t use it as an editor and don’t use MSVC.

Eyalamir,
Yes, it’s true that vscode on linux works just fine. After battling, and mostly losing, with vscode and visual studio on Windows 10, the one relatively stable JUCE platform I have is vscode/cmake on mx linux. My worry is the comment that vscode is not officially supported. If its deprecated in the future I think I would be stuck.

I’m sure more experienced Windows developers would be able to solve the problems I have encountered with WIndows vscode and visual studio but for me each new break means hours of googling and experimenting with suggested fixes and I’m increasingly exhausted and frustrated. However, I realize that my lack of knowledge is the root cause of the problem. I think JUCE is a marvellous framework and I just wish I could spend less time on toolchain issues and more time writing DSP code.

Thanks for the Clang suggestion. I’ll check it out and see if I can get it working.

From “Eyalamir via JUCE” <notifications@juce.discoursemail.com>
To stephenparkinson52@gmail.com
Date 10/2/2024 5:50:38 PM
Subject [JUCE] [General JUCE discussion] I can’t generate any Juce project with CMake because juceaide keeps failing to build

No, CMake is supported and not deprecated, and VSCode is just an editor that lunches a CMake project.

What’s not supported is MinGW. Use Clang or MSVC.

Fastest way to ‘just build’ is to install the full Visual Studio but keep using VS Code as an editor - it should then present MSVC and Clang as available toolchains if you installed them.

1 Like

Thanks for clarifying the architecture. I do get confused by that.

This sounds like good advice. I currently have visual studio installed but I think I have broken it beyond resurrection. For example, CMakelist.txt somehow finds an earlier version of Cmake than I have installed and fails, the debugger doesn’t recognize the .exe as a valid file and fails, and breakpoints can’t be found by the debugger (back when I could get something to build). It’s a pretty long list. Perhaps I should just re-install visual studio and vscode and start from bare metal.
I’m afraid I don’t know how to install Visual Studio and keep vscode as an editor and present MSVC or Clang as available toolchains. I’m pretty good at installing and configuring if I know what I’m trying to accomplish and it would be a big help to me if you could give me an overview of the process.

Thanks for your advice so far.

It’s hard to know what you’ve done and changed.
I would suggest to just:

  1. Install VS and make sure to tick Desktop C++ development (you can also add Clang there which I think isn’t installed by default).
  2. Install the Microsoft C++ extension in VSCode
  3. With VSCode, open a folder that has a CMakeLists.txt file and follow the instructions that should appear on screen to select the compiler and such.

(If you’ve had a temporary build folder or .vscode folder from previous build configurations, delete it first).

If you need more online help to set up, feel free to join @theaudioprogrammer Discord community where many people are also using VSCode with many different OSs and you can get more specific answers to questions:

1 Like

At this point I can’t be sure what I’ve done and changed so I agree it’s best to start from scratch.
Thanks very much for the checklist and the pointer to the Audio Programmer community.

You’ve been very helpful.