pierreguillot / Camomile

An audio plugin with Pure Data embedded that allows to load and to control patches
GNU General Public License v3.0
913 stars 65 forks source link

OSX Catalina compilation failure #248

Closed aidanswank closed 3 years ago

aidanswank commented 3 years ago

Hello, wonderful project btw!

I'm having issues trying to compile on macOS Catalina 10.15.7. Following the compilation steps I run into issues during the following command:

xcodebuild -workspace Camomile.xcworkspace -scheme Camomile-libpd -configuration Release

the build fails here:

../../../Juce/modules/juce_core/native/juce_osx_ObjCHelpers.h:214:88: error: use of
      undeclared identifier 'objc_msgSend_fpret'
  ...getMsgSendFPRetFn() noexcept   { return (MsgSendFPRetFn) (void*) objc_msgSend_f...
                                                                      ^
** BUILD FAILED **

The following build commands failed:
    CompileC /Users/aidan/Library/Developer/Xcode/DerivedData/Camomile-bviazxgfxdsfvghexsffhdtqngjx/Build/Intermediates.noindex/Camomile.build/Release/Camomile\ -\ Shared\ Code.build/Objects-normal/arm64/include_juce_events.o /Users/aidan/Desktop/hello/dev/v1.0.7/Instrument/JuceLibraryCode/include_juce_events.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

I read #169 #163 posts and tried the dev/v1.0.7 branch to see if maybe it was an i386 depreciation issue but I receive the same error.

Thank you for your time : )

pierreguillot commented 3 years ago

Hello,

The branch dev/v1.0.7 doesn't exist anymore, it has been merged into master. Can you give further information? What is the processor? The XCode version? etc.

I don't think that the problem is related to Catalina. Are you trying to compile for ARM architecture? I suggest you use the branch dev/v1.0.8 that has full Cmake support (with JUCE submodule updated). The submodules changed so ensure to initialize and update them properly, then follow the Readme instruction.

pierreguillot commented 3 years ago

I close this issue due to a lack of information and activity but feel free to reopen it if necessary.

aidanswank commented 3 years ago

Yes I am trying to compile for ARM i've updated my OS to big sur and the results were the same

macbook with M1 chip, cmake version 3.19.5, and Xcode 12.4 Build version 12D4e

Heres my full process, let me know if anything is incorrect: I downloaded xcode on the app store and cmake through brew

git clone --recursive --recurse-submodules https://github.com/pierreguillot/Camomile --single-branch dev/v1.0.8
cd dev/v1.0.8
cd Dependencies/LibPdBuild/MacOSX && cmake .. -GXcode && cd ../../..

output:

-- The C compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/aidan/Desktop/hello/dev/v1.0.8/Dependencies/LibPdBuild/MacOSX

then I do xcodebuild -workspace Camomile.xcworkspace -scheme Camomile-libpd -configuration Release error, same as before:

../../../Juce/modules/juce_core/native/juce_osx_ObjCHelpers.h:214:88: error: use of undeclared identifier
      'objc_msgSend_fpret'
inline MsgSendFPRetFn getMsgSendFPRetFn() noexcept   { return (MsgSendFPRetFn) (void*) objc_msgSend_fpret; }
pierreguillot commented 3 years ago

You should not do cd Dependencies/LibPdBuild/MacOSX && cmake .. -GXcode && cd ../../.. or xcodebuild -workspace Camomile.xcworkspace -scheme Camomile-libpd -configuration Release (you followed the instruction of the master branch not the one of dev/v1.0.8 that I linked) and there should not be the folder Dependencies/LibPdBuild/MacOSX anymore (are you sure you pulled dev/v1.0.8 properly?).

Ensure, you're on dev/v1.0.8 and that the submodules are well updated and then follow the instructions of readme on this branch (check the links of my previous post).