On Sep 27, 2014, at 11:37 PM, Joshua Root wrote:
> On 2014-9-28 12:15 , Ryan Schmidt wrote:
>> In the process I plan to create an xmkmf portgroup to replace the use_xmkmf 
>> keyword in base. 
> 
> Why?

It would match how we handle other build systems like xcodebuild and cmake. It 
is inconsistent that MacPorts base contains special support for imake, and 
especially since imake is obsolete, it makes sense to me to move it out of base 
into a portgroup so it doesn't clutter up base.

https://trac.macports.org/ticket/42547 is mostly not helpful, but does point 
out that the hardcoded value of IMAKECPP set by base is a problem here because 
we need to override it for Xcode 5 and there's currently no way to do so while 
using "use_xmkmf yes" because base sets it directly in configure_main.

Moving this code to a portgroup would make it possible for us to fix this 
problem and any other problems that might come up later without having to 
produce a new MacPorts release.


>> My proposal is to have this portgroup depend on the latest stable gcc port 
>> (currently gcc49) and have it use its cpp in IMAKECPP when the Xcode version 
>> is 5 or greater. I tried this with one port already and was able to build it 
>> on Yosemite beta. 
> 
> What's wrong with adding the dependency to the imake port on the
> affected platforms?

"Affected platforms" is Xcode 5 and later, which we don't have a clean way to 
model. We can check $xcodeversion, yes, but consider a case where a Mavericks 
user installs the imake port while using Xcode 4, and therefore doesn't get the 
gcc dependency because it's not needed, and later upgrades to Xcode 5, and now 
needs the gcc dependency but won't get it unless they rebuild imake, which they 
won't know to do.

There's a bunch of other stuff needed to build properly with imake, even above 
and beyond what's currently in base. We're missing all the things that are 
usually missing when one doesn't autotools -- using the right compiler, using 
arch flags, having a working universal variant, supporting the requested 
cxx_stdlib. Code to support all of this can go into the new portgroup, where 
it's not an inconvenience for the gcc dependency to go so that every time the 
user builds a port with imake, the gcc dependency can be added if the version 
of Xcode installed at that moment needs it.


If we come up with a better solution later that doesn't involve needing the big 
gcc dependency, great, we can improve it then. I'm just tired of this problem 
and want to make *something* that works, rather than what we currently have 
where all imake-using ports are broken with Xcode 5 or later. Some of those are 
dependencies of software I maintain so I'm eager to resolve this.


_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to