"What's the proper way to ask macports if it's installed and where to look for libraries/include headers?"
Jim DeLaHunt
list+macports-dev at jdlh.com
Sat Mar 26 05:42:13 UTC 2022
On 2022-03-25 20:56, John Douglas Owens via macports-dev wrote:
> Would someone consider answering this on
> https://github.com/pikepdf/pikepdf/issues/322
> <https://github.com/pikepdf/pikepdf/issues/322> ? The proximate issue is
> that pikepdf assumes Homebrew is installed and the install breaks on
> MacPorts if Homebrew is not installed. The developer would like to fix this!
This is a good question. I am not enough of a MacPorts developer to be
sure of the answer, but I will take it as an interesting riddle.
My guess: if there is a command `port` on the current path, then
MacPorts is likely installed. `which port` prints the absolute path
to a `port command`:
% which port
/opt/local/bin/port
So have the program run `which port`.
• case exit code is not 0: MacPorts is not installed.
• case exit code is 0: stdout contains the absolute path to `port`
Then run that path with `version`.
Check that it runs without error, and that the output matches
'''^Version: \d+\.\d+\.\d+$```. Though this check will be fragile if
MacPorts changes its version output.
The dirname of the dirname of the path returned by `which port` is
likely to be the prefix which MacPorts is installed. Thus append `/lib`
and `/include` to that prefix to get the MacPorts lib and include paths.
Is this reasonable, or is it a bad choice for reasons I don't yet know
about?
Best regards,
--Jim DeLaHunt
More information about the macports-dev
mailing list