<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/326f83e4236704d6231f3fe85f81fcb17886b48c">https://github.com/macports/macports-ports/commit/326f83e4236704d6231f3fe85f81fcb17886b48c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 326f83e4236704d6231f3fe85f81fcb17886b48c
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Sat May 30 10:14:15 2020 +0100

<span style='display:block; white-space:pre;color:#404040;'>    castxml: clean up code to generate clang variants
</span>---
 lang/castxml/Portfile | 72 ++++++++++++++++++++-------------------------------
 1 file changed, 28 insertions(+), 44 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/castxml/Portfile b/lang/castxml/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 2479a9b..d71b00b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/castxml/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/castxml/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,56 +34,40 @@ depends_lib-append  port:zlib \
</span> configure.args-append \
                     -DCastXML_INSTALL_DOC_DIR=share/doc/castxml
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant clang60 conflicts clang70 clang80 clang90 clang10 description {Use clang 6.0 toolchain.} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  port:llvm-6.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:clang-6.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLLVM_DIR=${prefix}/libexec/llvm-6.0/lib/cmake/llvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    cmake.install_rpath-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${prefix}/libexec/llvm-6.0/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# List of clang versions to offer variants for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang_vers { 6.0 7.0 8.0 9.0 10 }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant clang70 conflicts clang60 clang80 clang90 clang10 description {Use clang 7.0 toolchain.} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  port:llvm-7.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:clang-7.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLLVM_DIR=${prefix}/libexec/llvm-7.0/lib/cmake/llvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    cmake.install_rpath-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${prefix}/libexec/llvm-7.0/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc variant_name {ver} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return clang[string map {. {}} ${ver}]
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant clang80 conflicts clang60 clang70 clang90 clang10 description {Use clang 8.0 toolchain.} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  port:llvm-8.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:clang-8.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLLVM_DIR=${prefix}/libexec/llvm-8.0/lib/cmake/llvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    cmake.install_rpath-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${prefix}/libexec/llvm-8.0/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# build list of all clang variant names
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clang_variants {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver ${clang_vers} { lappend clang_variants [variant_name $ver] }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant clang90 conflicts clang60 clang70 clang80 clang10 description {Use clang 9.0 toolchain.} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  port:llvm-9.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:clang-9.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLLVM_DIR=${prefix}/libexec/llvm-9.0/lib/cmake/llvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    cmake.install_rpath-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${prefix}/libexec/llvm-9.0/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc build_conflicts {v} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global clang_variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set i [lsearch -exact ${clang_variants} ${v}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [lreplace ${clang_variants} ${i} ${i}]
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant clang10 conflicts clang60 clang70 clang80 clang90 description {Use clang 10 toolchain.} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append  port:llvm-10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:clang-10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLLVM_DIR=${prefix}/libexec/llvm-10/lib/cmake/llvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    cmake.install_rpath-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${prefix}/libexec/llvm-10/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set has_variant no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver ${clang_vers} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set v_name [variant_name ${ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set c [build_conflicts ${v_name}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant ${v_name} conflicts {*}${c} description "Use clang ${ver} toolchain" { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset ${v_name}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set has_variant yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {!$has_variant} { default_variants +clang90 }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset clang60] && ![variant_isset clang70] && ![variant_isset clang80] && ![variant_isset clang90] && ![variant_isset clang10]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    default_variants +clang90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach ver ${clang_vers} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set v_name [variant_name ${ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset ${v_name}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append          port:llvm-${ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_build-append        port:clang-${ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append       -DLLVM_DIR=${prefix}/libexec/llvm-${ver}/lib/cmake/llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        cmake.install_rpath-append  ${prefix}/libexec/llvm-${ver}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
</pre><pre style='margin:0'>

</pre>