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