[CMake] Marking a library dependency from within a library.

Christian Hoffmann christian_hoffmann at gmx.net
Thu Oct 18 08:10:35 EDT 2007


On Thursday 18 October 2007 13:47, Bill Hoffman wrote:
> Josef Karthauser wrote:
> > I have a library (libA), which depends upon another library (libB) for
> > its implementation.    I also have an executable (execC) which uses
> > LibA.  Is there an easy way of getting LibB added to the list of
> > dependencies, so what when I do
> >
> >
> >
> >   Add_Executable(exeC)
> >
> >   Target_Link_Libraries(exeC libA)
>
> Yes, where you create libA, you add this:
>
> target_link_libraries(libA libB)
>
> CMake will automatically chain.
Hi, 

this is the obvious answer if both library a built within your own project. 
However, it is unclear to me how to set such link dependencies between libs 
NOT being part of the project. In that case, your proposed solution would 
lead to 

CMake Error: Attempt to add link library "libB" to target "libA" which is not 
built by this project.

I am not sure if Josef Karthauser was referring to such a situation. This case 
occurs quite often in my projects and so far I found no way how to fomulate 
these dependencies in an elegant way. Anyone who can help me (and probably 
Josef Karthauser)?

Best regards

-- 
Dipl. Phys. Christian Hoffmann

Simulation and Optimization Group
Interdisciplinary Center for Scientific Computing (IWR)
Im Neuenheimer Feld (INF) 368, Room 414
University of Heidelberg

www.iwr.uni-heidelberg.de/groups/agbock/

Office:      +49 6221 54 88 95


More information about the CMake mailing list