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 <[email protected]> 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 <[email protected] 
> <mailto:[email protected]>> 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/>

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
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
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to