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.