<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/7f23cb112b664fd1fe88021f2f1647bbc7b21328">https://github.com/macports/macports-ports/commit/7f23cb112b664fd1fe88021f2f1647bbc7b21328</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 7f23cb112b6 cmake 1.0 PG: Backport ccache support from cmake 1.1 PG
</span>7f23cb112b6 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 7f23cb112b664fd1fe88021f2f1647bbc7b21328
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Wed May 5 18:28:33 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    cmake 1.0 PG: Backport ccache support from cmake 1.1 PG
</span>---
 _resources/port1.0/group/cmake-1.0.tcl | 41 ++++++++++++++++++++++++++++++++--
 1 file changed, 39 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/cmake-1.0.tcl b/_resources/port1.0/group/cmake-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 3b045063fa0..0b6bb3e950b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/cmake-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/cmake-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,8 +28,26 @@ pre-configure {
</span>     file mkdir ${configure.dir}
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#FIXME: ccache works with cmake on linux
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.ccache    no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cache the configure.ccache variable (it will be overridden in the pre-configure step)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cmake_ccache    ${configure.ccache}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# tell CMake to use ccache via the CMAKE_<LANG>_COMPILER_LAUNCHER variable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# and unset the global configure.ccache option which is not compatible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# with CMake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See https://stackoverflow.com/questions/1815688/how-to-use-ccache-with-cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc cmake_ccaching_flags {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    upvar cmake_ccache ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${ccache} && [file exists ${prefix}/bin/ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DCMAKE_C_COMPILER_LAUNCHER=${prefix}/bin/ccache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DCMAKE_CXX_COMPILER_LAUNCHER=${prefix}/bin/ccache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DCMAKE_Fortran_COMPILER_LAUNCHER=${prefix}/bin/ccache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DCMAKE_OBJC_COMPILER_LAUNCHER=${prefix}/bin/ccache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DCMAKE_OBJCXX_COMPILER_LAUNCHER=${prefix}/bin/ccache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DCMAKE_ISPC_COMPILER_LAUNCHER=${prefix}/bin/ccache ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 configure.cmd       ${prefix}/bin/cmake
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +62,7 @@ default configure.pre_args {-DCMAKE_INSTALL_PREFIX='${cmake.install_prefix}'}
</span> default configure.args {[list \
                     -DCMAKE_BUILD_TYPE=Release \
                     -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {*}[cmake_ccaching_flags] \
</span>                    {-DCMAKE_C_COMPILER="$CC"} \
                     -DCMAKE_COLOR_MAKEFILE=ON \
                    {-DCMAKE_CXX_COMPILER="$CXX"} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -145,9 +164,27 @@ platform darwin {
</span>         } else {
             configure.args-append -DCMAKE_OSX_SYSROOT="/"
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # The configure.ccache variable has been cached so we can restore it in the post-configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # (pre-configure and post-configure are always run in a single `port` invocation.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.ccache        no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # surprising but intended behaviour that's impossible to work around more gracefully:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # overriding configure.ccache fails if the user set it directly from the commandline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[tbool configure.ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "Please don't use configure.ccache=yes on the commandline for port:${subport}, use configureccache=yes"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -code error "invalid invocation (port:${subport})"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${cmake_ccache}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_info "        (using ccache)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 
     post-configure {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        # restore configure.ccache:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[info exists cmake_ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.ccache    ${cmake_ccache}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_debug "configure.ccache restored to ${cmake_ccache}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         # Although cmake wants us not to set -arch flags ourselves when we run cmake,
         # ports might have need to access these variables at other times.
         foreach archflag_var ${cmake._archflag_vars} {
</pre><pre style='margin:0'>

</pre>