On Thu, Apr 23, 2009 at 6:50 PM, James Bigler <jamesbig...@gmail.com> wrote:
> On Thu, Apr 23, 2009 at 9:39 AM, James Bigler <jamesbig...@gmail.com>wrote: > >> On Thu, Apr 23, 2009 at 6:50 AM, Nikolay Mitev <face.mi...@gmail.com>wrote: >> >>> [posting to the list, since I accidentally replied only to Sergey] >>> On Thu, Apr 23, 2009 at 1:48 PM, Sergey Rudchenko < >>> sergey.rudche...@gmail.com> wrote: >>> >>>> On Thu, 2009-04-23 at 13:37 +0300, Nikolay Mitev wrote: >>>> > Hi >>>> > >>>> > I have the following situation: >>>> > >>>> > files: test.cpp test.h >>>> > >>>> > I want to process the file test.cpp with a custom pre-processor which >>>> > will generate, say, test.ii.cpp which will get compiled into >>>> > libtest.a. test.cpp just includes test.h. >>>> > >>>> > This is my CMakeLists.txt file: >>>> > >>>> > cmake_minimum_required(VERSION 2.6) >>>> > >>>> > add_custom_command (OUTPUT test.ii.cpp >>>> > COMMAND preprocess test.cpp test.ii.cpp >>>> > DEPENDS test.cpp >>>> > COMMENT "Creating test.ii.cpp" >>>> > VERBATIM) >>>> > >>>> > add_library (test test.ii.cpp) >>>> > >>>> > All dandy, but when I modify test.h the preprocessing step is not run, >>>> > but just the compile step for test.ii.cpp. How can I make it so, that >>>> > when the header is modified the preprocessing and the compilation >>>> > steps are both run? >>>> >>>> Did you try to list the test.h in the DEPENDS list? >>>> >>> >>> Yes, and this works, but I really don't want to keep this list up-to-date >>> manually. The project involves hundreds of files, so I'm looking for a way >>> to automate this. Is there a way to extract the dependencies of test.cpp and >>> make test.ii.cpp depend on them? >>> >>> >>> Nikolay >>> >>> >> If you have a C or CXX language file look the documentation for >> add_custom_command and IMPLICIT_DEPENDS. >> >> James >> > > I just realized that IMPLICIT_DEPENDS only works for the Makefile > generator. If you need a more general solution, it requires a much bigger > hammer. I have a cmake script that generates the dependency file (i.e. -M) > and does a bunch of CMake magic to maintain that dependency file and > encorporate those dependencies into the build system. > > James > IMPLICIT_DEPENDS works for me, for now, since I'm targeting unix platforms. But a more generic solution would be really nice to have. Nikolay
_______________________________________________ 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