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