Closed diaza closed 3 years ago
As near as I can tell this is an issue with the cmake files that photospline outputs. it sets the variable INTERFACE_LINK_LIBRARIES
with the Acclerate.framework as if it were a shared library instead of a framework. I don't know how cmake creates those files so I am not sure how to fix this. Maybe @cnweaver has ideas.
Off of the top of my head I don't yet know what the issue is or how to fix it. It should not be necessary for code using photospline to explicitly link against the BLAS implementation. It's worth noting that the flags provided by photospline-config
are to the best of my knowledge correct (I just tested linking a program which runs a spline fit using these and it worked without issue on my OS 10.15 system), and I would strongly recommend that interface over the weird CMake-specific stuff.
Digging further into this will require trying to do a similar test using CMake as the build system, which is significantly more work than it was to write the 3 line traditional makefile, and if that works, to test doing the exercise again with Meson, which I expect to be a similar further increase in complexity.
I've been able to test that, as expected, CMake can consume the configuration scripts that it produces for itself, but as reported, Meson cannot. This is consistent with the behavior documented for CMake, that "When a full path to a framework is used as a library, CMake will use a -framework A, and a -F
I'm building on my personal laptop, running macOS Catalina V10.15.7.
When I run
ninja -C build
I get the following errorI was able to fix this by going into
build.ninja
and appending every instance of/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Accelerate.framework
with-I
.