<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/819395b793a5e55e00f22c485ebd4405db509f0f">https://github.com/macports/macports-ports/commit/819395b793a5e55e00f22c485ebd4405db509f0f</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 819395b793a bazel PG: Create compiler wrappers during pre-configure
</span>819395b793a is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 819395b793a5e55e00f22c485ebd4405db509f0f
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Mon May 3 20:14:57 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    bazel PG: Create compiler wrappers during pre-configure
</span>---
 _resources/port1.0/group/bazel-1.0.tcl | 86 ++++++++++++++++++++--------------
 1 file changed, 50 insertions(+), 36 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/bazel-1.0.tcl b/_resources/port1.0/group/bazel-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 7a0a274850a..5d2e2f92b03 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/bazel-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/bazel-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,6 +66,12 @@ default bazel.cxx_standard 2014
</span> options bazel.path
 default bazel.path {}
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc bazel::add_to_envs { var } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach phase {configure build destroot} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${phase}.env-append ${var}
</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> # Required java version
 java.version         11+
 # LTS JDK port to install if required java not found
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -74,9 +80,7 @@ java.fallback        openjdk11
</span> # declare no conflict to allow redistribution of binaries.
 license_noconflict   ${java.fallback}
 # append to envs
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.env-append JAVA_HOME=${java.home}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.env-append     JAVA_HOME=${java.home}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot.env-append  JAVA_HOME=${java.home}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+bazel::add_to_envs   JAVA_HOME=${java.home}
</span> 
 # Always force the use of the un-versioned SDK
 configure.sdk_version
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -161,12 +165,6 @@ if {![variant_isset native]} {
</span>            customized for your machine, use the +native variant"
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc bazel::add_to_envs { var } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach phase {configure build destroot} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${phase}.env-append ${var}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> proc bazel::set_env {} {
     global prefix env
     ui_debug "Setting Bazel Env"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -194,19 +192,51 @@ proc bazel::set_configure {} {
</span> }
 port::register_callback bazel::set_configure
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc bazel::compiler_wrap_dir { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global workpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set wrapdir ${workpath}/bazelwrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![file exists ${wrapdir}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 755 -d ${wrapdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return ${wrapdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Patch configuration
 pre-configure {
     # enforce correct build settings
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create compiler wrappers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set wrapdir [bazel::compiler_wrap_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach comp {cc cxx} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set f [ open ${wrapdir}/${comp} w 0755 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts ${f} "#!/bin/bash"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts ${f} "export CCACHE_DIR=[bazel::get_ccache_dir]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set bzflags "\"\$\{\@\}\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set bzcomp  "[set configure.${comp}]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { [option configure.ccache] && [file exists ${prefix}/bin/ccache] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set bzcomp "${prefix}/bin/ccache ${bzcomp}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set bzflags "[option legacysupport.header_search] ${bzflags}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts ${f} "exec ${bzcomp} ${bzflags}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        close ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cc  ${wrapdir}/cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx ${wrapdir}/cxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Patch the checked out source
</span>     # note final / is because ${worksrcpath} is a sym-link
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach f [ exec find ${worksrcpath}/ -name ".bazelrc" -or -name "configure" -or -name "configure.py" -or -name "compile.sh" -or -name "*.tpl" -or -name "*.bzl" -or -name "CROSSTOOL" -or -name "configure.py" -or -name "MOCK_CROSSTOOL" ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f [ exec find ${worksrcpath}/ -name ".bazelrc" -or -name "configure" -or -name "configure.py" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -or -name "compile.sh" -or -name "*.tpl" -or -name "*.bzl" -or -name "CROSSTOOL" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -or -name "configure.py" -or -name "MOCK_CROSSTOOL" ] {
</span>         foreach cmd {ar nm strip libtool ld objdump} {
             reinplace -q "s|/usr/bin/${cmd}|${prefix}/bin/${cmd}|g"    ${f}
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -q "s|/usr/bin/clang|\"${configure.cc}\"|g"          ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -q "s|\"clang++\"|\"${configure.cxx}\"|g"            ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -q "s| clang++ | ${configure.cxx} |g"                ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -q "s|\"clang\"|\"${configure.cc}\"|g"               ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -q "s| clang | ${configure.cc} |g"                   ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -q "s|/usr/bin/clang++|\"${wrapdir}/cxx\"|g"         ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -q "s|/usr/bin/clang|\"${wrapdir}/cc\"|g"            ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -q "s|\"clang++\"|\"${wrapdir}/cxx\"|g"              ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -q "s| clang++ | ${wrapdir}/cxx |g"                  ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -q "s|\"clang\"|\"${wrapdir}/cc\"|g"                 ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -q "s| clang | ${wrapdir}/cc |g"                     ${f}
</span>         reinplace -q "s|/usr/local/include|${prefix}/include|g"        ${f}
         reinplace -q "s|std=c++0x|std=c++11|g"                         ${f}
         reinplace -q "s|std=c++1y|std=c++14|g"                         ${f}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -216,7 +246,8 @@ pre-configure {
</span>     # If not native build, make sure not used...
     if {![variant_isset native]} {
         set base_march [bazel::get_base_arch]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach f [ exec find ${worksrcpath}/ -name "configure" -or -name "configure.py" -or -name "CMakeLists.txt" -or -name "Makefile" -or -name "*.sh" ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach f [ exec find ${worksrcpath}/ -name "configure" -or -name "configure.py" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -or -name "CMakeLists.txt" -or -name "Makefile" -or -name "*.sh" ] {
</span>             reinplace -q "s|-march=native|${base_march}|g" ${f}
         }
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -235,32 +266,15 @@ pre-build {
</span>         return -code error "build error"
     }
     if { [option bazel.run_bazel_fetch] && [option bazel.build_cmd] ne "" && [file exists ${worksrcpath}] } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Create compiler wrappers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set wrapdir ${workpath}/bazelwrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 755 -d ${wrapdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach comp {cc cxx} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set f [ open ${wrapdir}/${comp} w 0755 ]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            puts ${f} "#!/bin/bash"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            puts ${f} "export CCACHE_DIR=[bazel::get_ccache_dir]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set bzflags "\"\$\{\@\}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set bzcomp  "[set configure.${comp}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if { [option configure.ccache] && [file exists ${prefix}/bin/ccache] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set bzcomp "${prefix}/bin/ccache ${bzcomp}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set bzflags "[option legacysupport.header_search] ${bzflags}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            puts ${f} "exec ${bzcomp} ${bzflags}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            close ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set wrapdir [bazel::compiler_wrap_dir]
</span>         # Run fetch
         set addpath [string map {" " ":"} [option bazel.path]]
         system -W ${worksrcpath} "PATH=${addpath}:$env(PATH) [bazel::get_build_env] [option bazel.build_cmd] [option bazel.build_cmd_opts] fetch [option bazel.build_target]"
         # Patch the bazel clang wrapper script to use MacPorts compiler selection and support ccache
         foreach f [ exec find [bazel::get_bazel_build_area] -name "wrapped_clang.cc" ] {
             # Switch to selected compiler
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            reinplace -q "s|\"clang++\"|\"${wrapdir}/cxx\"|g"     ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            reinplace -q "s|\"clang\"|\"${wrapdir}/cc\"|g"        ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace -q "s|\"clang++\"|\"${wrapdir}/cxx\"|g"  ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace -q "s|\"clang\"|\"${wrapdir}/cc\"|g"     ${f}
</span>             # Bazel **really** doesn't want you changing stuff ;)
             # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
             system "touch -m -t 210012120101 ${f}"
</pre><pre style='margin:0'>

</pre>