<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/0ab11146901a61d9fa5d586652e059fd080978f5">https://github.com/macports/macports-ports/commit/0ab11146901a61d9fa5d586652e059fd080978f5</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 0ab11146901 LLVM 17: Migrate to Ninja based builds
</span>0ab11146901 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 0ab11146901a61d9fa5d586652e059fd080978f5
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Mon Mar 11 14:48:55 2024 +0000

<span style='display:block; white-space:pre;color:#404040;'>    LLVM 17: Migrate to Ninja based builds
</span>---
 lang/llvm-17/Portfile | 58 +++++++++++++++++++++++++++------------------------
 1 file changed, 31 insertions(+), 27 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-17/Portfile b/lang/llvm-17/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 82ada7d202b..911e63bc8b1 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,7 +27,7 @@ set clang_exe_version   ${llvm_version}
</span> version                 ${llvm_version}.0.6
 
 name                    llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                1
</span> subport                 mlir-${llvm_version}  { revision [ expr ${revision} + 0 ] }
 subport                 clang-${llvm_version} { revision [ expr ${revision} + 0 ] }
 subport                 lldb-${llvm_version}  { revision [ expr ${revision} + 0 ] }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,8 +56,7 @@ compiler.blacklist      *gcc* {clang < 1001} macports-clang-3.*
</span> compiler.blacklist-append {clang < 1204} {macports-clang-[5-9].0} {macports-clang-1[0-3]}
 compiler.fallback       clang macports-clang-14 macports-clang-15
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# We can't use Ninja with our custom destrooting plan for llvm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#cmake.generator         Ninja
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.generator         Ninja
</span> cmake.install_prefix    ${sub_prefix}
 cmake.build_type        Release
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -275,12 +274,6 @@ if {${subport} eq "mlir-${llvm_version}"} {
</span> 
     configure.args-append \
                         -DLLVM_ENABLE_PROJECTS="mlir"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # we have to run the destroot like this, because individual targets for each of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # components we want to install are not available; we want "everything but llvm"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/tools/mlir && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> }
 
 if { ${subport} eq "clang-${llvm_version}" } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -300,16 +293,6 @@ if { ${subport} eq "clang-${llvm_version}" } {
</span>         -DLLVM_ENABLE_RUNTIMES="libcxx\;libcxxabi" \
         -DLIBCXX_ENABLE_SHARED=ON    \
         -DLIBCXX_INSTALL_LIBRARY=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # we have to run the destroot like this, because individual targets for each of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # components we want to install are not available; we want "everything but llvm"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/tools/clang                      && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/tools/lld                        && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/projects/compiler-rt             && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/runtimes/runtimes-bins/libcxx    && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/runtimes/runtimes-bins/libcxxabi && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> }
 
 if { ${subport} eq "flang-${llvm_version}" } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -327,12 +310,6 @@ if { ${subport} eq "flang-${llvm_version}" } {
</span>         -DLIBCXX_INSTALL_LIBRARY=OFF
 
     depends_lib-append  port:clang-${llvm_version} port:mlir-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # we have to run the destroot like this, because individual targets for each of the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # components we want to install are not available; we want "everything but llvm"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "cd ${destroot.dir}/tools/flang && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> }
 
 if { ${subport} eq "clang-${llvm_version}" || ${subport} eq "flang-${llvm_version}" } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -442,12 +419,19 @@ variant tests description {Enable building of test code} {
</span> 
 post-destroot {
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file exists ${destroot}${sub_prefix}/bin/clang]} {
</span>         # remove the clang symlink and replace it with the actual binary
         delete      ${destroot}${sub_prefix}/bin/clang
         file rename ${destroot}${sub_prefix}/bin/clang-${clang_exe_version} ${destroot}${sub_prefix}/bin/clang
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # If only 'flang-new' created, link to 'flang'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file exists ${destroot}${sub_prefix}/bin/flang-new]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![file exists ${destroot}${sub_prefix}/bin/flang]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ln -s ${sub_prefix}/bin/flang-new ${destroot}${sub_prefix}/bin/flang
</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;'>+
</span>     # generate a versioned wrapper script for each file in the bin directory
     foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
         set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -468,11 +452,13 @@ post-destroot {
</span>         ln -s LLVMPolly.so ${destroot}${sub_prefix}/lib/LLVMPolly.dylib
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file exists ${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake]} {
</span>         # fix the cmake scripts to point to the versioned files
         reinplace "s|/bin/clang-${clang_exe_version}|/bin/clang|g" \
                   "${destroot}${sub_prefix}/lib/cmake/clang/ClangTargets-release.cmake"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${subport} eq "clang-${llvm_version}" || ${subport} eq "flang-${llvm_version}" } {
</span>         # http://trac.macports.org/ticket/33207
         ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -487,6 +473,24 @@ post-destroot {
</span>             macos-setup-codesign.sh \
             ${lldb_scripts_destdir}
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${subport} ne "llvm-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Need to deactivate current version before traversing destroot to remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # 'already installed' files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {set installed [lindex [registry_active ${subport}] 0]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            registry_deactivate_composite ${subport} "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Then search for files in destroot provided by other local (sub)ports deps and remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fs-traverse destroot_f ${destroot} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {![file isdirectory $destroot_f]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set f [string replace $destroot_f 0 [string length $destroot]-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[file exists ${f}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ui_debug "${f} already exists -> Removed from destroot"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    file delete ${destroot_f}
</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;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 
 if {${subport} eq "clang-${llvm_version}"} {
</pre><pre style='margin:0'>

</pre>