[CMake] CCACHE_DIR Environment Variable

David Lind davidklind at gmail.com
Thu Jan 19 15:44:43 EST 2017


Scott,

I have find_program implemented to find ccache, as shown below.

    find_program(CCACHE ccache)
    if(CCACHE)
        set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
        set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
    endif()

That’s not the issue. The issue is telling ccache where to place it’s cache files. If I compiles for toolchain X, Y and X, I need to set CCACHE_DIR accordingly. Otherwise the cache will be useless.

—Dave

> On Jan 19, 2017, at 12:57 PM, Craig Scott <craig.scott at crascit.com> wrote:
> 
> Rather than relying on environment variables, you can use CMake's find_program() command to find ccache on your path and then tell CMake to use that as a launcher. You can find an article with a detailed explanation of how to set this up here: 
> 
> https://crascit.com/2016/04/09/using-ccache-with-cmake/ <https://crascit.com/2016/04/09/using-ccache-with-cmake/>
> 
> An advantage of this approach is that the build will work with or without ccache installed. We've been using this in production for some time now and it works very smoothly. The technique can probably also be extended to support Windows too with clcache <https://github.com/frerich/clcache>, but I haven't tried that yet.
> 
> 
> On Fri, Jan 20, 2017 at 5:00 AM, David Lind <davidklind at gmail.com <mailto:davidklind at gmail.com>> wrote:
> I am porting existing makefiles to cmake. One of the key features of these makefiles is setting the CCACHE_DIR environment variable based upon the tool chain selected.
> 
> I have TC_<toolchain>.cmake files created. Ideally, I would add a line to these files to set the CCACHE_DIR. But, CMake doesn’t have the ability to set environment variables during the build step. So, I’m stuck.
> 
> Has anyone encountered this kind of situation?
> 
> —Dave
> --
> 
> Powered by www.kitware.com <http://www.kitware.com/>
> 
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ <http://www.cmake.org/Wiki/CMake_FAQ>
> 
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
> 
> CMake Support: http://cmake.org/cmake/help/support.html <http://cmake.org/cmake/help/support.html>
> CMake Consulting: http://cmake.org/cmake/help/consulting.html <http://cmake.org/cmake/help/consulting.html>
> CMake Training Courses: http://cmake.org/cmake/help/training.html <http://cmake.org/cmake/help/training.html>
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html <http://www.kitware.com/opensource/opensource.html>
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake <http://public.kitware.com/mailman/listinfo/cmake>
> 
> 
> -- 
> Craig Scott
> Melbourne, Australia
> https://crascit.com <https://crascit.com/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20170119/75e871ee/attachment.html>


More information about the CMake mailing list