[CMake] How to relink executables when depdent library got changed ?

Bill Hoffman bill.hoffman at kitware.com
Thu Jun 11 09:44:12 EDT 2009


Chih-pin Wu wrote:
> Hi all:
> 
>   I'm working on an embedded platform and building integrated software 
> as multimedia CE devices. And I am just started trying to introduce 
> CMake to replace my legacy environment constructed by many hand-written 
> gnu styled makefiles.
> 
>   I have many components which is cross referred to each other very 
> complicatedly, and it really helps a lot when I started to migrate to 
> CMake with the benefit of automatic dependency checking.
> 
>   However, my order of building is
> i) build lots of libraries, called components
> ii) then build final executable, called application, linking with libraries
> 
>   I really felt comfort when I modified some header files in the 
> component directory, and makefiles generated by CMake automatically 
> found it, rebuild all dependent source files as well as the libraries.
> However I could not make my final executable link those libraries 
> automatically when libraries got changed.
> 
>   I used TARGET_LINK_LIBRARIES to enumerate linking libraries, also 
> ADD_DEPENDENCIES with these libraries.
> But I still can't make it relink to a executable when those libraries 
> got changed, no matter it's rebuilt by makefile or replaced by some 
> newer revision.
> 

Can you post some of your cmake code?  This should work.  I suspect that 
you are not using full paths to libraries in target_link_libraries. 
add_dependencies should not be needed.

-Bill


More information about the CMake mailing list