Revision
117282
Author
jeremyhu@macports.org
Date
2014-02-21 00:49:50 -0800 (Fri, 21 Feb 2014)

Log Message

llvm-3.5: Force libc++

Modified Paths

Diff

Modified: trunk/dports/lang/llvm-3.5/Portfile (117281 => 117282)


--- trunk/dports/lang/llvm-3.5/Portfile	2014-02-21 08:05:07 UTC (rev 117281)
+++ trunk/dports/lang/llvm-3.5/Portfile	2014-02-21 08:49:50 UTC (rev 117282)
@@ -2,6 +2,7 @@
 
 PortSystem              1.0
 PortGroup select        1.0
+PortGroup compiler_blacklist_versions 1.0
 
 set llvm_version        3.5
 set llvm_version_no_dot 35
@@ -113,10 +114,28 @@
     select.file         ${filespath}/mp-${subport}
 }
 
-# g++-4.0 fails to build some of the newer C++ for ppc
-# Intel looks ok, but I prefer using gcc-4.2 for consistency
-compiler.blacklist gcc-4.0
+# llvm-3.5 and later requires a C++11 runtime
+compiler.blacklist *gcc* {clang < 300}
 
+# TODO: Check ${configure.cxx_stdlib} directly once MacPorts 2.3 is released
+platform darwin {
+    # Note that we are forcing this choice.  This means that anything linking
+    # against llvm-3.5 needs to also be using libc++.  This is possibly
+    # problematic, but luckily there is just a limited set of such dependents.
+
+    if {[info exists configure.cxx_stdlib]} {
+        configure.cxx_stdlib libc++
+    } elseif {${os.major} < 13} {
+        ui_error "$name requires a C++11 runtime, which your configuration does not allow"
+        error "unsupported configuration"
+    }
+
+    if {! [file exists /usr/lib/libc++.dylib]} {
+        ui_error "$name requires a C++11 runtime, which your configuration does not allow"
+        error "unsupported configuration"
+    }
+}
+
 variant universal {
     build.env-append \
         UNIVERSAL=1 \