On 09/08/11 00:00, Raymond Wan wrote:
> Hi Glenn,
>
>
> On Wed, Sep 7, 2011 at 20:36, Glenn Coombs <[email protected]> wrote:
>> Could you not create a file in each subdirectory called something like
>> header-deps.cmake ? This file would contain the include_directory()
>> commands necessary for using this module, plus include() commands of other
>> modules that it depends on. So for your example:
>>
>> # utils/b/header-deps.cmake
>> include_directories(...)
>> include(${CMAKE_SOURCE_DIR)/utils/a/header-deps.cmake)
>>
>> # utils/a/header-deps.cmake
>> include_directories(${CMAKE_SOURCE_DIR}/common/foo)
>>
>> Then you can just do include(${CMAKE_SOURCE_DIR}/utils/b/header-deps.cmake)
>> and it will add everything that B needs including all its dependencies.
>
> My understanding of Victor's question is that he would like (and I
> agree, it would be nice) for these dependencies to be determined by
> CMake auto-magically. So, whether we add include_directories () to
> the CMake file or have a header-deps.cmake file is perhaps not as
> important (though, your suggestion would reduce the amount of clutter
> in the CMakeLists.txt file).
>
> Perhaps a script is more suitable for this task? That is, it would
> walk through the directories and update each directories'
> header-deps.cmake. Surely, if a script is used, it would be less
> error-prone to have the script update an external file than the
> CMakeLists.txt file itself.
>
> Fortunately for me, the depth of my directories is not as deep as
> Victor's, so I'm not quite there yet. But perhaps later...
>
Everyone,
I've been reading through the thoughtful and helpful responses. It seems the
simplest albeit brute-force 'work-around' is to write
and include some "use files".
For long term (according to the FAQ) a feature request should be files in the
bug tracker. Can we we work together to create a
consensus description of the feature?
Here is something for starters:
Summary: automatically inherit include dependencies
Description:
Header-only targets may have dependencies which may themselves be header files.
It would be extremely useful that:
1) header-only targets be officially recognized (instead of requiring a
custom target
2) dependencies for headers be picked up automatically by the build system
such that all the dependent -I<includes> become part
of the build
-Vic
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake