-
Notifications
You must be signed in to change notification settings - Fork 173
Support building on macOS. #159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: resynthesizer3
Are you sure you want to change the base?
Conversation
The GIMP App on macOS has all the shared libraries that the plugin needs, it just doesn't have the headers. This change uses include paths from pre-built libraries (from Homebrew or MacPorts) and the GIMP source tree (from git or a release tarball) to build the plugin and force it to use the shared libraries that are installed with GIMP.app.
|
I use this shell script to build the plugin: |
|
Thanks. I don't understand. If the resynthesizer doesn't directly call those libraries (I don't think it does) then it doesn't need the headers for those libraries. I agree that during linking, it must use the same libraries as GIMP. So there is a transitive dependence on those libraries (the libraries themselves, not their headers.) But I am wondering why meson doesn't do that. Maybe it just doesn't, and parts of your fix are necessary. IOW I hate to make the meson.build more complicated than necessary. I could be wrong, I will need to study it more. |
|
When you I considered calling I'll try that, it might end up simplifying meson.build. I'm not happy with all the bespoke dependency juggling, either. Unfortunately macOS does not have a common package manager and installer. A mac "app" is just a directory tree with everything the app needs in there, including shared libraries that, on Linux, would normally be separate dependencies installed in |
In fact you get those include paths automagically on Linux from the |
Rename the option 'mac-gimp-souce' to 'gimp-source-dir'.
|
So it turns out that even with the recent commit that uses only the include paths from all the dependent packages, I still have to explicitly list all the shared libs provided in GIMP.app. That's because Again, this is something what would happen automagically on Linux with the gimp-3.0-dev dependency. |
… the symbols that are available in that version.
|
To follow up, with this patch I can build a working resynthesizer plugin on macOS. Tested with GIMP 3.0.2 and 3.0.4 on ARM64 (M3 Max). and |
The GIMP App on macOS has all the shared libraries that the plugin needs, it just doesn't have the headers. This change uses include paths from pre-built libraries (from Homebrew or MacPorts) and the GIMP source tree (from git or a release tarball) to build the plugin and force it to use the shared libraries that are installed with GIMP.app.