OpenShot / libopenshot-audio

OpenShot Audio Library (libopenshot-audio) is a free, open-source project that enables high-quality editing and playback of audio, and is based on the amazing JUCE library.
http://www.openshot.org
GNU General Public License v3.0
254 stars 101 forks source link

Undeclared function error when building on Apple Silicon #112

Closed dajyaretakuya closed 3 years ago

dajyaretakuya commented 3 years ago

The compiler will come across the error which indicating objc_msgSend_fpret is undeclared when compling following lines

#if ! JUCE_IOS
typedef double (*MsgSendFPRetFn) (id, SEL op, ...);
static inline MsgSendFPRetFn getMsgSendFPRetFn() noexcept   { return (MsgSendFPRetFn) (void*) objc_msgSend_fpret; }
#endif

I simply change the macro to #if ! JUCE_IOS && ! JUCE_ARM and the rest of building is successful. What I am not sure is can I just change it to #if ! JUCE_ARM because iOS is AArch64 architecture?

ferdnyc commented 3 years ago

@dajyaretakuya That's a fair question. The people to ask would be the upstream JUCE team, I suppose.

Depending what you're using the library for, if you're running on something as recent as an Apple Silicon machine, you may want to get JUCE directly from the developers at https://github.com/juce-framework/JUCE instead — I wouldn't be surprised if they've already addressed this in their most recent releases.

We're always lagging a bit behind, because libopenshot is focused more on retaining compatibility with older hardware, rather than supporting the bleeding edge.

dajyaretakuya commented 3 years ago

@dajyaretakuya That's a fair question. The people to ask would be the upstream JUCE team, I suppose.

Depending what you're using the library for, if you're running on something as recent as an Apple Silicon machine, you may want to get JUCE directly from the developers at https://github.com/juce-framework/JUCE instead — I wouldn't be surprised if they've already addressed this in their most recent releases.

We're always lagging a bit behind, because libopenshot is focused more on retaining compatibility with older hardware, rather than supporting the bleeding edge.

I just realized that it was an issue which should be posted to JUCE. It's still very appreciated of you.