Potential problem with small subset of Cocoa ports on Xcode 10
Perry E. Metzger
pmetzger at macports.org
Fri Sep 28 13:12:21 UTC 2018
[resending as I messed up the first time...]
On Fri, 28 Sep 2018 00:21:17 -0500 Ryan Schmidt
<ryandesign at macports.org> wrote:
> On Sep 26, 2018, at 17:14, Perry E. Metzger wrote:
> > It seems that there's a bad interaction between Xcode 10's new
> > build system and certain ports. "pinentry-mac" is the only one
> > I've hit so far but there may be others. The kludge is to tell
> > Xcode 10 (if it is the version running) to use its old build
> > system. If you hit this, try the kludge I've added to
> > "pinentry-mac" as a temporary workaround.
> > (Note that Xcode 10 also seems to be much more strict about
> > include file paths, which necessitated a distinct required fix
> > on "pinentry-mac".)
> Could you describe what the problem or error is, so we'll
> recognize it if we run into it?
Sorry for being too oblique. It only impacts things built from Xcode
projects, like Mac GUI apps.
The deal is that there's a distinction now between the "new" and
"old" Xcode build system. "New" was added in 10. Xcode projects can
simply fail to destroot when built with "new" because of an apparent
bug. (We're pretty sure it's a bug because it will hit an empty,
brand-new Cocoa project.)
You can see the symptoms by trying to build pinentry-mac without
turning off the new build system.
You will hit this only on Xcode projects, not on building ordinary
stuff, and you can kludge around it by turning off the new build
system for the destroot phase as I've done for
pinentry-mac. Unfortunately the flag is only understood by Xcode 10
so it can't be just used all the time.
Note that the new build system is also much more strict about many
things, you may have to clean up latent sloppy code (like the use of
<include.h> for something that should be "include.h" in C) to get
things to build with the new build system.
Perry E. Metzger pmetzger at macports.org
More information about the macports-dev