<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/47c6a4162f2ccbed5372ba49c4933f355fde20ab">https://github.com/macports/macports-base/commit/47c6a4162f2ccbed5372ba49c4933f355fde20ab</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 47c6a4162f2ccbed5372ba49c4933f355fde20ab
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sat Mar 9 06:52:06 2024 +1100
<span style='display:block; white-space:pre;color:#404040;'> portconfigure: prefer global to option calls
</span>---
src/port1.0/portconfigure.tcl | 137 +++++++++++++++++++++++-------------------
1 file changed, 76 insertions(+), 61 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 58aa2347a..e267d34ab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,8 +87,9 @@ proc portconfigure::should_add_stdlib {} {
</span> }
# GCC also supports -stdlib starting with GCC 10 (and devel), but
# not with PPC builds
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.build_arch
</span> if {[string match *g*-mp-* ${configure.cxx}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- && [option configure.build_arch] ni [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ${configure.build_arch} ni {ppc ppc64}} {
</span> # Do not pass stdlib to gcc if it is MacPorts custom macports-libstdc++ setting
# as gcc does not uderstand this. Instead do nothing, which means gcc will
# default to using its own libstdc++, which is in fact what we mean by
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -109,15 +110,15 @@ proc portconfigure::should_add_cxx_abi {} {
</span> # for OS X Mavericks and above, users must select libstdc++, so
# assume they want default ABI compatibility
# see https://gcc.gnu.org/onlinedocs/gcc-5.2.0/libstdc++/manual/manual/using_dual_abi.html
<span style='display:block; white-space:pre;background:#ffe0e0;'>- return [expr {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [option configure.cxx_stdlib] eq "macports-libstdc++" &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [option os.platform] eq "darwin" &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [option os.major] < 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global os.platform os.major configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [expr {${os.major} < 13 &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${os.platform} eq "darwin" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${configure.cxx_stdlib} eq "macports-libstdc++"}]
</span> }
proc portconfigure::construct_cxxflags {flags} {
if {[portconfigure::should_add_stdlib]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend flags -stdlib=[option configure.cxx_stdlib]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend flags -stdlib=${configure.cxx_stdlib}
</span> }
if {[portconfigure::should_add_cxx_abi]} {
lappend flags -D_GLIBCXX_USE_CXX11_ABI=0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -134,7 +135,8 @@ proc portconfigure::stdlib_trace {opt action args} {
</span> }
if {$action eq "read"} {
if {[portconfigure::should_add_stdlib]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- $opt-append -stdlib=[option configure.cxx_stdlib]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $opt-append -stdlib=${configure.cxx_stdlib}
</span> }
if {[portconfigure::should_add_cxx_abi]} {
$opt-append -D_GLIBCXX_USE_CXX11_ABI=0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -261,17 +263,17 @@ default configure.cflags {${configure.optflags}}
</span> default configure.objcflags {${configure.optflags}}
default configure.cppflags {[portconfigure::configure_get_cppflags]}
proc portconfigure::configure_get_cppflags {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global prefix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global prefix compiler.limit_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.limit_flags}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return {}
</span> } else {
return -I${prefix}/include
}
}
default configure.ldflags {[portconfigure::configure_get_ldflags]}
proc portconfigure::configure_get_ldflags {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global prefix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global prefix compiler.limit_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.limit_flags}} {
</span> return -Wl,-headerpad_max_install_names
} else {
return "-L${prefix}/lib -Wl,-headerpad_max_install_names"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -359,11 +361,11 @@ default compiler.thread_local_storage no
</span> set_ui_prefix
proc portconfigure::configure_start {args} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global UI_PREFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global UI_PREFIX subport configure.compiler compiler.fallback configure.ccache
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "$UI_PREFIX [format [msgcat::mc "Configuring %s"] [option subport]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_notice "$UI_PREFIX [format [msgcat::mc "Configuring %s"] $subport]"
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set compiler [option configure.compiler]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set compiler ${configure.compiler}
</span> set valid_compilers {
{^apple-gcc-(4\.[02])$} {MacPorts Apple GCC %s}
{^cc$} {System cc}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -396,11 +398,10 @@ proc portconfigure::configure_start {args} {
</span> if {![info exists compiler_name]} {
return -code error "Invalid value for configure.compiler: $compiler"
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_debug "Preferred compilers: [option compiler.fallback]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "Preferred compilers: ${compiler.fallback}"
</span> ui_debug "Using compiler '$compiler_name'"
# Additional ccache directory setup
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global configure.ccache
</span> if {${configure.ccache}} {
global ccache_dir ccache_size macportsuser
# Create ccache directory with correct permissions with root privileges
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -548,7 +549,8 @@ proc portconfigure::find_close_sdk {sdk_version sdk_path} {
</span> }
proc portconfigure::configure_get_sdkroot {sdk_version} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global developer_dir macos_version_major xcodeversion os.arch os.major os.platform use_xcode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global developer_dir macos_version macos_version_major xcodeversion \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os.arch os.major os.platform use_xcode
</span>
# This is only relevant for macOS
if {${os.platform} ne "darwin"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -582,7 +584,7 @@ proc portconfigure::configure_get_sdkroot {sdk_version} {
</span> }
if {$sdk_major >= 11 && $sdk_major == $macos_version_major} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set try_versions [list ${sdk_major}.0 [option macos_version]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set try_versions [list ${sdk_major}.0 ${macos_version}]
</span> } else {
set try_versions [list $sdk_version]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -642,7 +644,7 @@ proc portconfigure::configure_get_sdkroot {sdk_version} {
</span> }
if {$sdk_major >= 11 && $sdk_major == $macos_version_major} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set try_versions [list ${sdk_major}.0 [option macos_version]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set try_versions [list ${sdk_major}.0 ${macos_version}]
</span> } else {
set try_versions [list $sdk_version]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -729,9 +731,10 @@ proc portconfigure::arch_flag_supported {compiler {multiple_arch_flags no}} {
</span> if {${multiple_arch_flags}} {
return [regexp {^gcc-4|llvm|apple|clang} ${compiler}]
} else {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ global os.subplatform
</span> # GCC prior to 4.7 does not accept -arch flag
if {[regexp {^macports(?:-[^-]+)?-gcc-4\.[0-6]} ${compiler}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- || ([option os.subplatform] ne "macosx" && ${compiler} in {cc gcc})} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || (${os.subplatform} ne "macosx" && ${compiler} in {cc gcc})} {
</span> return no
} else {
return yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -818,9 +821,10 @@ proc portconfigure::configure_get_fortran_compiler {} {
</span> return ${configure.compiler}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach compiler [option compiler.fortran_fallback] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global compiler.fortran_fallback compiler.blacklist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach compiler ${compiler.fortran_fallback} {
</span> set allowed yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach pattern [option compiler.blacklist] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach pattern ${compiler.blacklist} {
</span> if {[string match $pattern $compiler]} {
set allowed no
break
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -834,7 +838,7 @@ proc portconfigure::configure_get_fortran_compiler {} {
</span> }
}
ui_warn "All Fortran compilers are either blacklisted or unavailable; defaulting to first fallback option"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- return [lindex [option compiler.fortran_fallback] 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [lindex ${compiler.fortran_fallback} 0]
</span> }
#
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -983,7 +987,8 @@ proc portconfigure::get_min_command_line {compiler} {
</span> }
# utility procedure: get minimum Clang version based on restrictions
proc portconfigure::get_min_clang {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global compiler.c_standard compiler.cxx_standard compiler.openmp_version compiler.thread_local_storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global compiler.c_standard compiler.cxx_standard compiler.openmp_version \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.thread_local_storage configure.cxx_stdlib
</span> set min_value 1.0
if {${compiler.c_standard} >= 2017} {
set min_value [max_version $min_value 6.0]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -995,14 +1000,14 @@ proc portconfigure::get_min_clang {} {
</span> } elseif {${compiler.cxx_standard} >= 2017} {
set min_value [max_version $min_value 5.0]
} elseif {${compiler.cxx_standard} >= 2014} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option configure.cxx_stdlib] eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.cxx_stdlib} eq "libc++"} {
</span> set min_value [max_version $min_value 3.4]
} else {
# macports-libstdc++ only macports-clang compilers >= 5.0 support this
set min_value [max_version $min_value 5.0]
}
} elseif {${compiler.cxx_standard} >= 2011} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option configure.cxx_stdlib] eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.cxx_stdlib} eq "libc++"} {
</span> set min_value [max_version $min_value 3.3]
} else {
# macports-libstdc++ only macports-clang compilers >= 5.0 support this
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1022,16 +1027,20 @@ proc portconfigure::get_min_clang {} {
</span> }
# utility procedure: get minimum GCC version based on restrictions
proc portconfigure::get_min_gcc {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global compiler.c_standard compiler.cxx_standard compiler.openmp_version compiler.thread_local_storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.cxx_stdlib
</span>
# Technically these only support macports-libstdc++, but if all the
# options that use the system libstdc++ have been blacklisted, we
# still need to use something. So only skip them entirely when
# using libc++.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option configure.cxx_stdlib] eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.cxx_stdlib} eq "libc++"} {
</span> return none
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ global compiler.c_standard compiler.cxx_standard compiler.openmp_version \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.thread_local_storage compiler.limit_flags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.support_environment_sdkroot configure.sdkroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set min_value 1.0
if {${compiler.c_standard} >= 2017} {
set min_value [max_version $min_value 8]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1064,9 +1073,8 @@ proc portconfigure::get_min_gcc {} {
</span> # GCC emulates thread-local storage, but it seems to be broken on older versions of GCC
set min_value [max_version $min_value 4.5]
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {(${compiler.limit_flags} || ${compiler.support_environment_sdkroot})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ${configure.sdkroot} ne {}
</span> } {
set min_value [max_version $min_value 7]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1074,7 +1082,9 @@ proc portconfigure::get_min_gcc {} {
</span> }
# utility procedure: get minimum Gfortran version based on restrictions
proc portconfigure::get_min_gfortran {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global compiler.openmp_version compiler.thread_local_storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global compiler.openmp_version compiler.thread_local_storage \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.limit_flags compiler.support_environment_sdkroot \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.sdkroot
</span> set min_value 1.0
if {[vercmp ${compiler.openmp_version} 4.5] >= 0} {
set min_value [max_version $min_value 8]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1089,9 +1099,8 @@ proc portconfigure::get_min_gfortran {} {
</span> # GCC emulates thread-local storage, but it seems to be broken on older versions of GCC
set min_value [max_version $min_value 4.5]
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {(${compiler.limit_flags} || ${compiler.support_environment_sdkroot})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ${configure.sdkroot} ne {}
</span> } {
set min_value [max_version $min_value 7]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1099,18 +1108,19 @@ proc portconfigure::get_min_gfortran {} {
</span> }
#
proc portconfigure::g95_ok {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global compiler.openmp_version os.platform xcodeversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global os.platform xcodeversion
</span> if {${os.platform} eq "darwin" && ([vercmp $xcodeversion 9.0] > 0)} {
# see https://github.com/macports/macports-ports/commit/6b905efc9d5586366ac498ed78d6ac51c120d33f
return no
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ global compiler.openmp_version compiler.limit_flags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.support_environment_sdkroot configure.sdkroot
</span> if {${compiler.openmp_version} ne ""} {
# G95 does not support OpenMP
return no
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ([option compiler.limit_flags] || [option compiler.support_environment_sdkroot]) &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [option configure.sdkroot] ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {(${compiler.limit_flags} || ${compiler.support_environment_sdkroot})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ${configure.sdkroot} ne {}
</span> } {
return no
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1145,7 +1155,8 @@ proc portconfigure::get_apple_compilers_xcode_version {} {
</span> set compilers [list llvm-gcc-4.2 clang gcc-4.2]
} else {
# Legacy Cases
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string match *10.4u* [option configure.sdkroot]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.sdkroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string match *10.4u* ${configure.sdkroot}]} {
</span> # from Xcode 3.2 release notes:
# GCC 4.2 cannot be used with the Mac OS X 10.4u SDK.
# If you want to build targets using the 10.4u SDK on Xcode 3.2, you must set the Compiler Version to GCC 4.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1317,16 +1328,17 @@ proc compiler.command_line_tools_version {compiler} {
</span> }
# internal function to choose compiler fallback list based on platform
proc portconfigure::get_compiler_fallback {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global default_compilers xcodeversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global default_compilers xcodeversion os.subplatform \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.build_arch compiler.mpi
</span>
# Check our override
if {[info exists default_compilers]} {
return $default_compilers
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option os.subplatform] eq "macosx"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.subplatform} eq "macosx"} {
</span> # Check for macOS without Xcode (i.e. CLTs only)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$xcodeversion eq "none" || $xcodeversion eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$xcodeversion in {none {}}} {
</span> set available_apple_compilers [portconfigure::get_apple_compilers_os_version]
} else {
set available_apple_compilers [portconfigure::get_apple_compilers_xcode_version]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1371,11 +1383,12 @@ proc portconfigure::get_compiler_fallback {} {
</span> set compilers [list]
lappend compilers {*}${system_compilers}
# when building for PowerPC architectures, prefer GCC to Clang
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set cur_arch [option configure.build_arch]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cur_arch ${configure.build_arch}
</span> if {$cur_arch eq ""} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set cur_arch [option build_arch]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global build_arch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cur_arch ${build_arch}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$cur_arch in [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$cur_arch in {ppc ppc64}} {
</span> lappend compilers {*}${gcc_compilers}
lappend compilers {*}${clang_compilers}
} else {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1383,11 +1396,11 @@ proc portconfigure::get_compiler_fallback {} {
</span> lappend compilers {*}${gcc_compilers}
}
# generate list of MPI wrappers of current compilers
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option compiler.mpi] eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.mpi} eq ""} {
</span> return $compilers
} else {
set mpi_compilers [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach mpi [option compiler.mpi] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach mpi ${compiler.mpi} {
</span> foreach c ${compilers} {
lappend mpi_compilers [portconfigure::get_mpi_wrapper $mpi $c]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1408,12 +1421,13 @@ proc portconfigure::get_fortran_fallback {} {
</span> if {[portconfigure::g95_ok]} {
lappend compilers macports-g95
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ global compiler.mpi
</span> # generate list of MPI wrappers of current compilers
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option compiler.mpi] eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.mpi} eq ""} {
</span> return $compilers
} else {
set mpi_compilers [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach mpi [option compiler.mpi] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach mpi ${compiler.mpi} {
</span> foreach c ${compilers} {
lappend mpi_compilers [portconfigure::get_mpi_wrapper $mpi $c]
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1442,9 +1456,9 @@ proc portconfigure::find_developer_tool {name} {
</span>
# internal function to find correct compilers
proc portconfigure::configure_get_compiler {type {compiler {}}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global configure.compiler prefix_frozen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.compiler prefix_frozen compiler.require_fortran os.major
</span> if {$compiler eq ""} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option compiler.require_fortran]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.require_fortran}} {
</span> switch $type {
fc -
f77 -
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1481,7 +1495,7 @@ proc portconfigure::configure_get_compiler {type {compiler {}}} {
</span> set clangpp [find_developer_tool clang++]
if {[file executable $clangpp]} {
return $clangpp
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {[option os.major] <= 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {${os.major} <= 12} {
</span> return [find_developer_tool llvm-g++-4.2]
}
return ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1489,7 +1503,7 @@ proc portconfigure::configure_get_compiler {type {compiler {}}} {
</span> }
} elseif {[regexp {^gcc(-3\.3|-4\.[02])?$} $compiler -> suffix]} {
# Only exists in Xcode < 4.2, so 10.7 and older.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option os.major] >= 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 12} {
</span> return ""
}
switch $type {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1501,7 +1515,7 @@ proc portconfigure::configure_get_compiler {type {compiler {}}} {
</span> }
} elseif {$compiler eq "llvm-gcc-4.2"} {
# Only exists in Xcode < 5, so 10.8 and older.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option os.major] >= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 13} {
</span> return ""
}
switch $type {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1716,7 +1730,7 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span> depends_lib-append $libgcc_dep
}
} elseif {[regexp {^macports-clang(?:-(\d+(?:\.\d+)?))$} $compiler -> clang_version]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global configure.cxx_stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.cxx_stdlib compiler.openmp_version
</span> if {${configure.cxx_stdlib} eq "macports-libstdc++"} {
# see https://trac.macports.org/ticket/54766
ui_debug "Adding depends_lib path:lib/libgcc/libgcc_s.1.dylib:libgcc"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1728,7 +1742,7 @@ proc portconfigure::add_compiler_port_dependencies {compiler} {
</span> depends_lib-delete "port:libcxx"
depends_lib-append "port:libcxx"
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[option compiler.openmp_version] ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${compiler.openmp_version} ne ""} {
</span> ui_debug "Adding depends_lib port:libomp"
depends_lib-delete "port:libomp"
depends_lib-append "port:libomp"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1749,7 +1763,8 @@ proc portconfigure::configure_main {args} {
</span> configure.perl configure.python configure.ruby configure.install configure.awk configure.bison \
configure.pkg_config configure.pkg_config_path \
configure.ccache configure.distcc configure.javac configure.sdkroot \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.march configure.mtune os.platform os.major
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.march configure.mtune os.platform os.major \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.limit_flags
</span> foreach tool {cc cxx objc objcxx f77 f90 fc ld} {
global configure.${tool} configure.${tool}_archflags
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1841,7 +1856,7 @@ proc portconfigure::configure_main {args} {
</span> }
# add SDK flags if cross-compiling (or universal on ppc tiger)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${configure.sdkroot} ne "" && ![option compiler.limit_flags]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${configure.sdkroot} ne "" && !${compiler.limit_flags}} {
</span> foreach env_var {CPPFLAGS CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS} {
append_to_environment_value configure $env_var -isysroot${configure.sdkroot}
}
</pre><pre style='margin:0'>
</pre>