<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>