[Feature] Implementation of macOS linker functions#28
[Feature] Implementation of macOS linker functions#28TomasBorquez merged 16 commits intoTomasBorquez:masterfrom
Conversation
…modeled after `AddIncludePaths`.
…d after `LinkSystemLibraries`.
TomasBorquez
left a comment
There was a problem hiding this comment.
Apart from that minor comment, PR looks good, to make it easier, you can add the test case fix on this PR and close the previous one, also changes are supposed to be made in:
./src/api.c
./src/api.hand then you run the amalgam script ./scripts/run-amalgam.sh and that adds the changes to mate.h, and before sending run run-tests-macos.sh, if it works, take a screenshot and add it to the PR as proof of work, from there I review it and if it's all good we merge :)
mate.h
Outdated
|
|
||
| static void mateLinkFrameworksWithOptions(String *targetLibs, LinkFrameworkOptions options, StringVector *frameworks) { | ||
| if (isGCC()) { | ||
| Assert(0, |
There was a problem hiding this comment.
nitpick:
Assert(!isGCC(), ...)and I like the idea that there are two asserts for better error messages
Got it. I'll close it now and work on moving the changes to the right spot in the morning. |
|
Should be good to go now 👍 |
Hey looks good, can you send a screenshot of running tests to make sure nothing broke? also add test 07-raylib-source-code, on here: mate.h/scripts/run-tests-macos.sh Line 25 in a06c6d4 |
I'm not sure that'll be much help, but FWIW they all show as passing on GitHub after these latest changes. If we actually wanted to test the window creation and stuff we'd need to change the
Yeah, I forgot to pull those back in. The removal of tests for Apple's GCC too. Good catch. |
aren't those the formatting checks?
yeah but you can't do those tests in github actions, i didn't look much into how raylib does it but i think they just compile their code and if it works then the workflow passes lmao |
|
anyways merging, thanks for the PR :) |
This PR provides an implementation of linker functions for framework bundles, relying on compiler support for these, as discussed in #23.
The implementation for all the functions are based on their regular "Include" or "StaticLib" equivalents, with the exception of basic
LinkFrameworkOptionssupport, which is modeled after Zig's solution, and covers the two most common alternative linking modes for framework bundles.Since full support for modern framework bundles is only available with clang, assertions to that effect are made at the top of the corresponding functions, and specific hints are offered for users wanting to take advantage of GCC's partial support.