[Development] About the presence of /System/Library/Frameworks/Carbon.framework
René J. V. Bertin
rjvbertin at gmail.com
Mon Jan 8 11:17:36 CET 2018
Konstantin Tokarev wrote:
>> It does sound like we're a little too enthusiastic about jumping to a
>> conclusion here - is there a better way to decide what we're compiling
>> for ? Surely we should ignore uname if configure has options that
>> explicitly ask for cross-compilation; but it's a reasonable thing to
>> consult otherwise, when auto-detecting in the absence of explicit
>> instructions - in particular, more to be trusted than the existence of
>> (possibly non-native) frameworks,
>
> Note that in opening letter different question was asked, namely how to
> detect if script is running on Mac or not, presumably to avoid asking Linux
> users to install Xcode.
I think Edward is raising the same question, but yes, the reason I raised my
question was that I was prompted to install Xcode AND that that was all the
script would do. The former is ... pittoresque, the latter is more annoying.
A combination of tests might be the way to go. I noticed the same check for
Carbon.framework in the MacPorts sources (also to distinguish PureDarwin). But
in their case they check the result from `tcl_platform(os)` first. If memory
serves me well that variable is initialised from uname. I.e. something like
if [ $UNAME_SYSTEM = Darwin -a -d /System/Library/Frameworks/Carbon.framework ];
then
BUILD_ON_MAC=yes
fi
The only situation in which this test could fail validly would be on PureDarwin
or similar OS ("true and false"). That's exactly what is required here, no?
Alternatively, there's `sysctl hw.model` which can probably be used as the
unique test.
And of course there's the possibility to add a way to force the script to
continue in an unforeseen situation (but that seems more work).
R.
More information about the Development
mailing list