<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c2c932372a49ae3dff8faa7e21f085b006687e1c">https://github.com/macports/macports-ports/commit/c2c932372a49ae3dff8faa7e21f085b006687e1c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c2c932372a49ae3dff8faa7e21f085b006687e1c
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Sat Apr 21 09:02:03 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    languages PG: add support for MPI compilers
</span>---
 _resources/port1.0/group/languages-1.0.tcl | 66 +++++++++++++++++++-----------
 1 file changed, 42 insertions(+), 24 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/languages-1.0.tcl b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 3adca4e..154a94f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/languages-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,6 +1,6 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
 #
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Copyright (c) 2015-2017 The MacPorts Project
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Copyright (c) 2015-2018 The MacPorts Project
</span> # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -95,6 +95,10 @@ proc portconfigure::configure_start {args} {
</span>         {^macports-gcc-(\d+(?:\.\d+)?)$}    {MacPorts GCC %s}
         {^macports-llvm-gcc-4\.2$}          {MacPorts LLVM-GCC 4.2}
         {^macports-g95$}                    {MacPorts G95}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        {^macports-mpich-default$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {MacPorts MPICH Wrapper for MacPorts' Default C/C++ Compiler}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        {^macports-openmpi-default$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {MacPorts Open MPI Wrapper for MacPorts' Default C/C++ Compiler}
</span>         {^macports-mpich-clang$}
             {MacPorts MPICH Wrapper for Xcode Clang}
         {^macports-openmpi-clang$}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,11 +161,6 @@ proc portconfigure::get_compiler_fallback {} {
</span>         return $default_compilers
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Check for platforms without Xcode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {$xcodeversion eq "none" || $xcodeversion eq ""} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return {cc}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     return [portconfigure::get_valid_compilers]
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -176,6 +175,11 @@ proc portconfigure::get_valid_compilers {{full_list no}} {
</span>         os.major                 \
         cxx_stdlib
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Check for platforms without Xcode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$xcodeversion eq "none" || $xcodeversion eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return {cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # https://releases.llvm.org/3.1/docs/ClangReleaseNotes.html#cchanges
     # https://gcc.gnu.org/c99status.html
     # https://gcc.gnu.org/wiki/C11Status
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -346,22 +350,20 @@ proc portconfigure::get_valid_compilers {{full_list no}} {
</span>     foreach mpi ${mpis} {
         foreach c ${compilers} {
             set parts [split ${c} -]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[lindex ${parts} 0] eq "clang"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                lappend mpi_compilers macports-${mpi}-[lindex ${parts} 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            } elseif {[lindex ${parts} 0] eq "macports"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    [lindex ${parts} 1] eq "clang"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    [vercmp [lindex ${parts} 2] 3.3] >= 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    lappend mpi_compilers [lindex ${parts} 0]-${mpi}-[lindex ${parts} 1]-[lindex ${parts} 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                } elseif {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          [lindex ${parts} 1] eq "gcc"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          [vercmp [lindex ${parts} 2] 4.3] >= 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    lappend mpi_compilers [lindex ${parts} 0]-${mpi}-[lindex ${parts} 1]-[lindex ${parts} 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[lindex ${parts} 0] ne "macports"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend mpi_compilers macports-${mpi}-default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      [lindex ${parts} 1] eq "clang"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      [vercmp [lindex ${parts} 2] 3.3] >= 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend mpi_compilers [lindex ${parts} 0]-${mpi}-[lindex ${parts} 1]-[lindex ${parts} 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      [lindex ${parts} 1] eq "gcc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      [vercmp [lindex ${parts} 2] 4.3] >= 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend mpi_compilers [lindex ${parts} 0]-${mpi}-[lindex ${parts} 1]-[lindex ${parts} 2]
</span>             }
         }
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -385,6 +387,7 @@ proc portconfigure::compiler_port_name {compiler} {
</span>         {^macports-clang-(\d+\.\d+)$}                       {clang-%s}
         {^macports-dragonegg-(\d+\.\d+)(-gcc-\d+\.\d+)?$}   {dragonegg-%s%s}
         {^macports-(llvm-)?gcc-(\d+)(?:\.(\d+))?$}          {%sgcc%s%s}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        {^macports-([^-]+)-default$}                        {%s-default}
</span>         {^macports-([^-]+)-clang$}                          {%s-clang}
         {^macports-([^-]+)-clang-(\d+)\.(\d+)$}             {%s-clang%s%s}
         {^macports-([^-]+)-gcc-(\d+)(?:\.(\d+))?$}          {%s-gcc%s%s}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -576,6 +579,13 @@ proc portconfigure::configure_get_compiler_real {type compiler} {
</span>             f77     -
             f90     { return ${prefix}/bin/mpifort-${mpi}-gcc${suffix} }
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[regexp {^macports-([^-]+)-default$} $compiler -> mpi]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        switch $type {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            cc      -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            objc    { return ${prefix}/bin/mpicc-${mpi}-mp }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            cxx     -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            objcxx  { return ${prefix}/bin/mpicxx-${mpi}-mp }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
     # Fallbacks
     switch $type {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -645,7 +655,7 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span>         ui_debug "Adding depends_lib port:$compiler_port"
         depends_lib-delete port:$compiler_port
         depends_lib-append port:$compiler_port
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } elseif {[regexp {^macports-([^-]+)-(clang|gcc)(?:-(\d+(?:\.\d+)?))?$} $compiler -> mpi clang_or_gcc version]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[regexp {^macports-([^-]+)-(default|clang|gcc)(?:-(\d+(?:\.\d+)?))?$} $compiler -> mpi clang_or_gcc version]} {
</span>         # MPI compilers link against MPI libraries
         ui_debug "Adding depends_lib port:$compiler_port"
         if {${mpi} eq "openmpi"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -717,7 +727,15 @@ default configure.cxx_stdlib            {[portconfigure::configure_cxx_stdlib]}
</span> proc portconfigure::configure_cxx_stdlib {} {
     global cxx_stdlib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set is_macports_clang [string match *clang++-mp-* [option configure.cxx]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[regexp {^clang\+\+-mp-([\d.]+)$} [file tail [option configure.cxx]] -> version]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # MacPorts Clang version 3.9 or above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set is_macports_clang [expr [vercmp ${version} 3.9] >= 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[regexp {^mpicxx-[^-]+-clang([\d.]+)$} [file tail [option configure.cxx]] -> version]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # MPI wrapper for MacPorts Clang version 3.9 or above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set is_macports_clang [expr [vercmp ${version} 39] >= 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set is_macports_clang 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
     if {${is_macports_clang} && ${cxx_stdlib} eq "libstdc++" && [option compiler.cxx_standard] >= 2011} {
         return "macports-libstdc++"
</pre><pre style='margin:0'>

</pre>