<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/5986d5a39071ec27241f81d7a96baa147bea7a60">https://github.com/macports/macports-ports/commit/5986d5a39071ec27241f81d7a96baa147bea7a60</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 5986d5a39071ec27241f81d7a96baa147bea7a60
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Fri Dec 22 21:55:18 2023 +0800
<span style='display:block; white-space:pre;color:#404040;'> linear_algebra PG: support FlexiBLAS and blis; allow custom default_variants
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/68569
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/68910
</span>---
_resources/port1.0/group/linear_algebra-1.0.tcl | 44 ++++++++++++++++++-------
1 file changed, 32 insertions(+), 12 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/linear_algebra-1.0.tcl b/_resources/port1.0/group/linear_algebra-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 67a4bb7da18..d81ebd73c92 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/linear_algebra-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/linear_algebra-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,12 +28,14 @@ PortGroup active_variants 1.1
</span> options linalglib \
cmake_linalglib \
blas_only \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- veclibfort
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ veclibfort \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_default_variants
</span>
default linalglib ""
default cmake_linalglib ""
default blas_only no
default veclibfort yes
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default set_default_variants yes
</span>
proc linalg.setup {args} {
global blas_only, veclibfort
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,17 +52,20 @@ proc linalg.setup {args} {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset accelerate] && ![variant_isset atlas] && ![variant_isset openblas]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${os.platform} eq "darwin" && ${os.major} < 21} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://trac.macports.org/ticket/65260
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants-append +accelerate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants-append +openblas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {$set_default_variants} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![variant_isset accelerate] && ![variant_isset atlas] && ![variant_isset blis] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ![variant_isset flexiblas] && ![variant_isset openblas]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && ${os.major} < 21} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see https://trac.macports.org/ticket/65260
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +accelerate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +openblas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
# choose one of the following for serial linear algebra
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant accelerate conflicts atlas openblas description {Build with linear algebra from built-in Accelerate framework} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant accelerate conflicts atlas blis flexiblas openblas description {Build with linear algebra from built-in Accelerate framework} {
</span> if {$veclibfort} {
depends_lib-append port:vecLibFort
linalglib -lvecLibFort
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,7 +77,7 @@ variant accelerate conflicts atlas openblas description {Build with linear algeb
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant atlas conflicts accelerate openblas description {Build with linear algebra from ATLAS} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant atlas conflicts accelerate blis flexiblas openblas description {Build with linear algebra from ATLAS} {
</span> depends_lib-append port:atlas
if {[variant_isset threads]} {
linalglib -ltatlas
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,7 +92,21 @@ variant atlas conflicts accelerate openblas description {Build with linear algeb
</span> # configure.args-append -DBLA_VENDOR=ATLAS
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant openblas conflicts accelerate atlas description {Build with linear algebra from OpenBLAS} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant blis conflicts accelerate atlas flexiblas openblas description {Build with linear algebra from BLIS} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:blis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ linalglib -lblis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmake_linalglib -DBLAS_LIBRARIES=blis \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLAPACK_LIBRARIES=blis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # cmake_linalglib -DBLA_VENDOR=FLAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant flexiblas conflicts accelerate atlas blis openblas description {Build with linear algebra from FlexiBLAS} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:flexiblas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ linalglib -lflexiblas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmake_linalglib -DBLA_VENDOR=FlexiBLAS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant openblas conflicts accelerate atlas blis flexiblas description {Build with linear algebra from OpenBLAS} {
</span> # allow OpenBLAS-devel too
depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
if {!$blas_only} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -106,7 +125,8 @@ variant openblas conflicts accelerate atlas description {Build with linear algeb
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_error "You must select either the +accelerate, +atlas, or +openblas variant for linear algebra."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ![variant_isset blis] && ![variant_isset flexiblas]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "You must select either the +accelerate, +atlas, +blis, +flexiblas or +openblas variant for linear algebra."
</span> return -code error "No linear-algebra variant selected."
}
</pre><pre style='margin:0'>
</pre>