<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/fba38d04de22120464ffb40287adf23c93dd603a">https://github.com/macports/macports-ports/commit/fba38d04de22120464ffb40287adf23c93dd603a</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit fba38d04de22120464ffb40287adf23c93dd603a
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Sat Apr 21 09:17:58 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    languages PG: improve support for Fortran compilers
</span>---
 _resources/port1.0/group/languages-1.0.tcl | 54 +++++++++++++++++++-----------
 1 file changed, 34 insertions(+), 20 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 154a94f..ded80ea 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;'>@@ -166,7 +166,7 @@ proc portconfigure::get_compiler_fallback {} {
</span> 
 # if full_list is yes, then get all possible compilers that might work on this configuration
 # if full_list is no, reducde the compiler list to the "best" compilers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc portconfigure::get_valid_compilers {{full_list no}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portconfigure::get_valid_compilers {{full_list no} {just_fortran no}} {
</span>     global                       \
         xcodeversion             \
         compiler.c_standard      \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -229,6 +229,11 @@ proc portconfigure::get_valid_compilers {{full_list no}} {
</span>         set default_xcode_ok 0
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Xcode compilers do no provide Fortran compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${just_fortran}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set default_xcode_ok 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html
     # https://developer.apple.com/library/content/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html
     # Xcode 3.2 relase notes (Link?)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -291,7 +296,7 @@ proc portconfigure::get_valid_compilers {{full_list no}} {
</span>     #      4.5       |    Partial    |     ???
     #
     set gcc_compilers macports-gcc-7
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${compiler.cxx_standard} < 2017} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${compiler.cxx_standard} < 2017 || ${just_fortran}} {
</span>         # allow latest GCC to be blacklisted by ports
         # see https://trac.macports.org/ticket/54215#comment:36
         lappend gcc_compilers macports-gcc-6
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -317,29 +322,25 @@ proc portconfigure::get_valid_compilers {{full_list no}} {
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # only Clang compilers recognize libc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend compilers {*}${clang_compilers}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Clang does not provide Fortran compiler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option compiler.require_fortran]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend compilers {*}${gcc_compilers}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${just_fortran}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend compilers {*}${gcc_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend compilers macports-g95
</span>     } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # when building for PowerPC architectures, prefer GCC to Clang
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[option configure.build_arch] eq "ppc" || [option configure.build_arch] eq "ppc64"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend compilers {*}${gcc_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # only Clang compilers recognize libc++
</span>             lappend compilers {*}${clang_compilers}
         } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend compilers {*}${clang_compilers}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            lappend compilers {*}${gcc_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # when building for PowerPC architectures, prefer GCC to Clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[option configure.build_arch] eq "ppc" || [option configure.build_arch] eq "ppc64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend compilers {*}${gcc_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend compilers {*}${clang_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend compilers {*}${clang_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend compilers {*}${gcc_compilers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[option compiler.require_fortran]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend compilers macports-g95
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     # generate list of MPI wrappers of current compilers
     set mpi_compilers {}
     if {[option compiler.mpi] ne ""} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -409,6 +410,11 @@ proc portconfigure::get_fortran_fallback {} {
</span>             lappend ret ${compiler}
         }
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${ret} eq {}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # no Fortran compilers were found in compiler.fallback
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # get list of all possible compilers with Fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return [get_valid_compilers no yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span>     return $ret
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -438,7 +444,15 @@ proc portconfigure::configure_get_first_compiler {compilerName search_list} {
</span>             }
         }
         if {[lsearch [portconfigure::get_valid_compilers yes] ${compiler}] < 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set allowed no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # get_valid_compilers does not recognize ${compiler} as a valid compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${compilerName} eq "fc"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[lsearch [portconfigure::get_valid_compilers yes yes] ${compiler}] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # get_valid_compilers recognizes ${compiler} as a valid *Fortran* compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set allowed no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set allowed no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
         if {$allowed &&
             [configure_get_compiler_real ${compilerName} $compiler] ne "" &&
</pre><pre style='margin:0'>

</pre>