RomanKubiak / ctrlr

Ctrlr
BSD 3-Clause "New" or "Revised" License
534 stars 62 forks source link

Build natively for Apple Silicon #560

Open spinlud opened 1 year ago

spinlud commented 1 year ago

Has anyone been able to build Ctrlr natively for Apple Silicon?

mattavent commented 1 year ago

Project needs a lot of work to bring it up to modern C++ standard. I think a rewrite is probably quicker

dobo365 commented 1 year ago

There are somewhere some 5.6.23 versions made for M1 but I have never been able to use/test them as I don't have a M1... Waiting for an emulation for PC Windows. But I have those M1 versions and can provide them.

mattavent commented 1 year ago

Is there a fork somewhere for M1 builds?

maxtr0ne commented 1 year ago

unsure, but i am going to test this one this week:

https://www.godlike.com.au/index.php?id=361

midibox commented 1 year ago

By following these (great!) instructions we will still get the same errors related to expired usage of std::auto_ptr at many (!!!) places.

However, I got the build working without changing any source files by switching back to C++14 standard in the project build settings under "Apple Clang - Language" -> "C Language dialect"

Unfortunately this results into a new dilemma: JUCE 6.0.8 version which is part of the repo will throw assertions during runtime because it isn't prepared for newer MacOS versions. And if we switch to a newer JUCE 7.0.* version build will fail because new JUCE versions expect at least C++17

So far I got Ctrlr running on a M2 Mac with MacOS 14 (Sonoma) by compiling the Release variant, because it disables assertions - this seems to work anyhow.

However, a clean & future proven solution would require a proper migration to C++17

Best Regards, Thorsten.

synthmania67 commented 10 months ago

Hi Midibox, I tried today to build a VST3 version because of the wrong name (instigator/Ctrlr). But with Xcode the build fails. I´ve installed Juce 6.05 and Xcode 13.4.1 with Monterey on a MAC M1. How did you do that with your system?

jounih commented 2 months ago

By following these (great!) instructions we will still get the same errors related to expired usage of std::auto_ptr at many (!!!) places.

However, I got the build working without changing any source files by switching back to C++14 standard in the project build settings under "Apple Clang - Language" -> "C Language dialect"

Unfortunately this results into a new dilemma: JUCE 6.0.8 version which is part of the repo will throw assertions during runtime because it isn't prepared for newer MacOS versions. And if we switch to a newer JUCE 7.0.* version build will fail because new JUCE versions expect at least C++17

So far I got Ctrlr running on a M2 Mac with MacOS 14 (Sonoma) by compiling the Release variant, because it disables assertions - this seems to work anyhow.

However, a clean & future proven solution would require a proper migration to C++17

Best Regards, Thorsten.

Hey Thorsten,

Good info. Would you be able to to share the compiled Release variant binary you got working on Apple Silicon?

Can it also export AudioUnit components of panels that work with Apple Silicon?

Thanks!