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;
.
.
.

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.

1 Like

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