CMake build of JUCE 6 on Windows 10 freezes while building juceaide

I tried to run a CMake build of JUCE 6 on Windows 10. After 50 minutes, the build remains stuck at --Building juceaide, displayed in the console. I’ve tried 4 times with the same result.

I’ve watched the Task Manager, and the linker ld.exe is burning through CPU the entire time.

My environment:

  • Windows 10
  • MSYS2 MinGW 64-bit
  • CMake version 3.17.2
  • gcc.exe (Rev2, Built by MSYS2 project) 10.1.0

Steps Taken

  • Clone master branch (tag 6.0.0, commit 55df089)
  • Create new folder for install (outside of cloned repo folder)
  • Local folders
    source: /c/lib/JUCE/JUCE
    install: /c/lib/JUCE/install
  • Build JUCE per instructions in “docs/CMake API.md”
    cmake -B cmake-build-install -DCMAKE_INSTALL_PREFIX=/c/lib/JUCE/install
  • wait 50 minutes and then post to the JUCE forum :slight_smile:

Does anyone see something I’ve overlooked or have done wrong? Is there a known bug?

I’ve seen very slow link times under minGW (although nothing quite that bad…). If possible I’d advise using another compiler. Clang on windows is much faster than minGW, and better-supported by JUCE too (it’s not possible to build a VST3 with minGW currently, as an example).

I downloaded Visual Studio 2019 and ran CMake using VS 2019 to generate project files and build JUCE 6. That was mostly successful. Three of the demo projects failed to build:

  • ChildProcessDemo
  • InAppPurchasesDemo
  • PushNotificationsDemo

Those are the only problems I encountered.

@reuk you mentioned that minGW has limitations compared to Clang (e.g. unable to build a VST3). Does the Visual Studio compiler have any limitations?

Also, what is juceaide? I haven’t found a description of it in the forums or documents.

Thanks for the heads up, I’ll see what’s going wrong in those demo projects.

MSVC is JUCE’s best-supported compiler on Windows (although Clang is quickly catching up).

juceaide is a helper tool that generates additional build assets, such as icon files, plists, entitlements files, and compiled binary data. It’s called by CMake during the build to generate these files, so JUCE users should never have to interact with it directly.

2 Likes

The failing demos should be fixed by this commit: