Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to JUCE 6.1.5 + fluidsynth 2.2.5 + make Docker cross-compile parallel & ARM-native #35

Merged
merged 11 commits into from
Feb 13, 2022

Conversation

Birch-san
Copy link
Owner

@Birch-san Birch-san commented Feb 8, 2022

Making a new Dockerfile for the build:

  • inheriting from an ARM-native image (because my computer is ARM and compilation was super slow)
  • making use of multi-stage builds and Docker buildkit
    • for concurrency (because builds are slow, and Docker for Mac's VM was never using more than 1 core for the build)
    • to make it less sensitive to layer ordering (invalidate layer cache in fewer situations)

Upgrading fluidsynth to 2.2.5, to fix #22 (comment).
Upgrading from my fork of JUCE 6.1.2 to mainline JUCE 6.1.5; the MinGW-w64 build has had some attention, so @reuk recommends to try it out, to see whether the following issues are fixed:

Unfortunately, the changes mean that MinGW-w64 builds now depend on the Windows SDK, for example for headers like UIAutomation.h:
https://github.com/juce-framework/JUCE/blob/53b04877c6ebc7ef3cb42e84cb11a48e0cf809b5/modules/juce_gui_basics/juce_gui_basics.cpp#L70

I've acquired the Windows SDK via xwin. So I have the headers and libraries I need.

But llvm-mingw is failing to compile the code contained in the Windows SDK headers:
https://gist.github.com/Birch-san/d54e6e64be4e954b59a5156f76472a0a

Maybe it's fundamentally unsupported for clang to include the Windows SDK headers?

Maybe we can use the best-effort headers generated by WIDL compiler instead?
https://github.com/slimsag/win32metadata/tree/master/generation/WinSDK/RecompiledIdlHeaders

I'm currently working on a minimal repro here (which seems to be failing on JUCE rather than Windows SDK):
https://github.com/Birch-san/juce-repro
The current error I'm getting in the minimal repro, is a uuidof() error, so looks related to juce-framework/JUCE#985.

Update: Okay, looks like there was an easier way to get the Windows SDK headers. MinGW comes with some already; I just needed to deal with the case-sensitive filename.

@Birch-san Birch-san changed the title WIP: Upgrade to JUCE 6.1.5 + fluidsynth 2.2.5 + make Docker cross-compile parallel & ARM-native Upgrade to JUCE 6.1.5 + fluidsynth 2.2.5 + make Docker cross-compile parallel & ARM-native Feb 13, 2022
@Birch-san Birch-san merged commit 9329281 into master Feb 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Some sf2s ignore sustain
1 participant