[MacPorts] #47339: p5-alien-wxwidgets, p5-wx: update to latest versions

MacPorts noreply at macports.org
Fri Apr 3 07:55:03 PDT 2015


#47339: p5-alien-wxwidgets, p5-wx: update to latest versions
---------------------------------------+---------------------
  Reporter:  devans@…                  |      Owner:  mojca@…
      Type:  update                    |     Status:  new
  Priority:  Normal                    |  Milestone:
 Component:  ports                     |    Version:
Resolution:                            |   Keywords:
      Port:  p5-alien-wxwidgets p5-wx  |
---------------------------------------+---------------------

Comment (by devans@…):

 Replying to [comment:3 mojca@…]:
 > It seems to me that the problem with 10.10 has been fixed, but the
 following chunk of code seems problematic and I need some help with it:
 > {{{
 > my $tools43 = '/Applications/Xcode.app/Contents/Developer/Tools';
 > my $restoolpath = ( -d $tools43 ) ? $tools43 : '/Developer/Tools';

 This is just setting $restoolpath to whichever of these two paths exist as
 a directory.  These are the expected installation paths for Xcode in a
 standard default install.  /Developer/Tools was used in older version, new
 versions (4.3 on I'm guessing based on the variable name) use
 /Applications/Xcode.app/Contents/Developer/Tools.  This won't work if you
 have placed Xcode in a non-standard location.  However, using /usr/bin
 will only work if xcode-select has been properly set to link to your
 install location.  I think it would be better to figure a way to find the
 absolute path to the proper directory.  Normally MacPorts does this for
 you.

 >
 > sub get_flags {
 >   my $this = shift;
 >   my %config = $this->SUPER::get_flags;

 I think the code enclosed in the if statement following can just be
 removed.  It's trying to fixup $config{CC} and $config{LD} for each of the
 listed versions assuming your using a vanilla install of perl.  Our perl
 versions set these config values correctly so nothing to do here -- just
 return %config.

 Try the following to see values of these flags (The example was run on
 Mavericks)


 {{{
 $ perl5.16 -V:cc -V:ld
 cc='/usr/bin/clang';
 ld='env MACOSX_DEPLOYMENT_TARGET=10.9 /usr/bin/clang';
 }}}

 Remove this:

 >   if ($config{CC} =~ /clang\+\+/ || $config{LD} =~ /clang\+\+/) {
 >       my $sdkrepl = '';
 >       for my $sdkversion ( qw( 10.9 10.8 10.7 10.6 ) ) {
 >         my $macossdk =
 qq(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${sdkversion}.sdk);
 >         if( -d $macossdk ) {
 >               $sdkrepl = 'clang++ -isysroot ' . $macossdk . '
 -stdlib=libc++';
 >               last;
 >         }
 >       }
 >       if ( $sdkrepl ) {
 >         $config{CC} =~ s/clang\+\+/$sdkrepl/g;
 >         $config{LD} =~ s/clang\+\+/$sdkrepl/g;
 >       }
 >   }
 >

 Keep this

 >   return %config;
 > }
 > }}}
 >
 > First of all there is absolutely no guarantee that users installed Xcode
 under `/Applications/Xcode.app/Contents/Developer/Tools` (I didn't). My
 workaround so far was to set
 > {{{
 > my $restoolpath = '/usr/bin';
 > }}}
 >
 > But I don't understand the rest of the code either. Is it trying to
 force `libc++` on 10.6, where setting `-isysroot /path/to/sdk` will make
 sure that it won't work??? And why does it only list 10.6 - 10.9?

 See above.

-- 
Ticket URL: <https://trac.macports.org/ticket/47339#comment:5>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list