Reputation: 161
How would I build a Universal Binary 2 that supports both Intel and Apple Silicon using CMake/Make? I have found some documentation here - https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary - but that uses XCode, which i'm not using in my project. Thanks!
Upvotes: 16
Views: 14118
Reputation: 2158
To create a universal binary set the following variable
CMAKE_OSX_ARCHITECTURES=arm64;x86_64
If you use CMake GUI press "Add Entry" and then set Name to CMAKE_OSX_ARCHITECTURES, Type=String, Value=arm64;x86_64
Then Configure->Generate->make. Here is the output you should see after building (my exe name is sprint_5)
>> file sprint_5
sprint_5: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
sprint_5 (for architecture x86_64): Mach-O 64-bit executable x86_64
sprint_5 (for architecture arm64): Mach-O 64-bit executable arm64
Upvotes: 29