On Wed, Sep 5, 2018 at 9:56 PM, Antoine Pitrou <anto...@python.org> wrote:

>
> Hello,
>
> On our project (Apache Arrow - https://arrow.apache.org/) we're using
> CMake for the C++ source tree and have many external dependencies
> fetched using ExternalProject.  In turn building those dependencies can
> make up a significant portion of build times on CI services, especially
> AppVeyor.  So I've been looking for a solution to cache those
> third-party builds from one CI run to the other.
>
> Right now, what I'm trying to do is to set EP_BASE to a well-known base
> directory and ask AppVeyor to cache and restore that directory in each
> new build.  The AppVeyor caching seems to work fine (the EP_BASE
> directory is saved and restored).  However, it seems that nevertheless
> CMake will rebuild all those projects again, despite the cached build
> results.
>

When AppVeyor restores the cached directories and files, does it also
preserve their timestamps? If not, that might explain why it always
rebuilds.



>
> This is with CMake 3.12.1 on Windows.
>
> Here is the log for an example build step, here the zstd library:
> https://ci.appveyor.com/project/pitrou/arrow/build/1.
> 0.700/job/i4tj6tifp4xq1mjn?fullLog=true#L803
>
> As you can see, CMake notices the downloaded tarball is up-to-date and
> doesn't download it again, but it still extracts it again (why?) and
> builds the source code anew.  Yet the entire EP_BASE directory (here
> "C:/Users/appveyor/arrow-externals") is cached and restored by AppVeyor.
>
> Did someone manage to make this work, and/or is there another solution?
>
>

-- 
Craig Scott
Melbourne, Australia
https://crascit.com

New book released: Professional CMake: A Practical Guide
<https://crascit.com/professional-cmake/>
-- 

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:
https://cmake.org/mailman/listinfo/cmake

Reply via email to