openframeworks / apothecary

This is the OpenFrameworks library apothecary. It mixes formulas and potions to build and update the C/C++ lib dependencies.
Other
56 stars 51 forks source link

Bleeding macOS Toolchain / XCFramework #337

Closed danoli3 closed 7 months ago

danoli3 commented 7 months ago

Updating with Apple XCFramework Toolchain system.

NEW FEATURES

Okay finally feeling well enough to finish this but the benefits are:

[utf8 - 3.2.1 -> 4.0.5] [libpng - 1.60.0 -> 1.60.4] [glfw - 1.13 -> 1.14] [glfw - 3.38 -> 3.39] [rtAudio - macOS Toolchain] [libxml2 [2.11.4] -> [2.12.5]

Apothecary function -framework

./apothecary/apothecary -tosx -dout framework freeimage

Would make a xcframework from build output binary libs.

Additional Developer Scripts

danoli3 commented 7 months ago

Fixed clean scripts... much cleaner

Screenshot 2024-02-07 at 11 35 12 am
danoli3 commented 7 months ago

Heaps of buildtime headroom with new compilers.

Merged bundles down to 2

danoli3 commented 7 months ago

NEW FEATURES

Okay finally feeling well enough to finish this but the benefits are:

danoli3 commented 7 months ago

Additional Developer Scripts

scripts/osx/build_xcframework.sh (build xc framework) scripts/osx/xcframework_all (build all xcframeworks) scripts/xros/build_and_deploy_all.sh (builds all targets and installs in oF libs) scripts/tvos/build_and_deploy_all.sh (builds all targets and installs in oF libs) scripts/ios/build_and_deploy_all.sh (builds all targets and installs in oF libs) scripts/watchos/build_and_deploy_all.sh (builds all targets and installs in oF libs)

danoli3 commented 7 months ago

Okay cool some extra logic to fix up there to cater for all platforms smartly and sort out multi binary release issues like seen in OpenCV with ARCH / and multi libs.

Process of XCFramework-ication now merges these using Paired and compatible types (simulators and simulators), devices and devices. This allows for seamless merge of binaries in XCFramework now

danoli3 commented 7 months ago

Merging some more work to do! for the other macOS platforms will complete in another PR