[cmake-developers] Setting includes, defines and other usage requirements with one command

Alexander Neundorf neundorf at kde.org
Mon Jan 28 13:05:08 EST 2013


On Sunday 27 January 2013, Stephen Kelly wrote:
> Alexander Neundorf wrote:
> > Does
> > 
> > function(target_use_stuff _target )
> > 
> >   target_compile_definitions(${_target} ${ARGN})
> >   target_include_directories(${_target} ${ARGN})
> >   target_link_libraries(${_target} ${ARGN})
> > 
> > endfunction()
> > 
> > actually differ from what you want to do for tll() ?
> 
> Yes. tll() takes LINK_PUBLIC and the others take PUBLIC for example.

Yes, but this is just a different keyword meaning basically the same.

> Additionally tll() can take non-targets such as library-file names and
> strings such as "-Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5
> -lk5crypto -lcom_err" as is used in kdelibs (from GSSAPI).
> 
> There is some clean-up to do, but it is possible to write a macro for it,
> as I wrote here:

Is it maybe a bit inconsistent that
- to setup linking, I can use tll() with targets and with paths
- to setup include dirs, I can use tll() with targets, or tid() with targets 
and directories, or id() with directories

Should include_directories() maybe also be taught to recognize targets ?

I mean, it kind of makes sense that tll() does not (will not) handle 
directories for setting up include dirs, but I'm still not sure I like that 
tll() will handle linking completely and partly setting up the includes.

Alex



More information about the cmake-developers mailing list