On 03/15/2016 10:48 AM, Attila Krasznahorkay wrote:
> https://cmake.org/pipermail/cmake-developers/2015-December/027197.html
> 
> With the following patch, when setting the CMAKE_ONLY_IN_SOURCE_DEPENDENCIES
> variable to 1/ON/TRUE, this file size goes down to just a few kilobytes.
> Speeding up our build noticeably.

Thanks.  As Ben pointed out in the original thread the build tree should
be included as well.  Perhaps a name like

  CMAKE_DEPENDS_IN_PROJECT_ONLY

could be used to indicate that it includes only dependencies in the project
directories (source or build tree).

> As far as I can see, the "cmake -E cmake_depends" call is only used by
> the Makefile generator at the moment. So I only taught that generator
> about this new variable.

The Makefile generator is the only one for which CMake takes responsibility
for implicit dependency scanning.

> I just didn't see what I should do in the Ninja generator for instance
> to apply this setting. Even though I would be very interested in implementing
> the feature in that generator as well.

The Ninja generator uses the compiler's information about dependencies
as generated by options like `gcc -MD`.  Since that occurs along with
the compilation there is little cost to including all dependencies
except for stat during rebuilds.  See discussion here:

  https://cmake.org/Bug/view.php?id=14914

about the opposite use case (including system dependencies instead of
excluding them).

> +  infoFileStream
> +    << "set(CMAKE_ONLY_IN_SOURCE_DEPENDENCIES "
> +    << ( this->Makefile->IsOn( "CMAKE_ONLY_IN_SOURCE_DEPENDENCIES" ) ?
> +         "1" : "0" )
> +    << ")\n";

Rather than communicating this to the dependency scanning step and
doing the filtering there, please look at applying the filter during
generation of CMAKE_<LANG>_TARGET_INCLUDE_PATH.

Thanks,
-Brad

-- 

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-developers

Reply via email to