Using target_include_directories()

Alexander Neundorf neundorf at kde.org
Sun Mar 24 14:25:51 UTC 2013


Hi,

we now are using the new cmake command target_include_directories() in kde 
frameworks.
This makes it possible to specifiy per-target include directories.
When using the keyword PRIVATE, it's the include directories when building the 
targets, INTERFACE is the include directories necessary when using that 
target, and PUBLIC applies to both.
You can list directories (as you are used to), and also targets (this is new), 
from the those include directories will be used, which have been put into 
their interface via PUBLIC or INTERFACE.

This is done e.g. in kwidgets:

target_include_directories(kwidgets PUBLIC
    "$<BUILD_INTERFACE:${kwidgets_INCLUDES}>"
    "$<TARGET_PROPERTY:kdeui,INTERFACE_INCLUDE_DIRECTORIES>"
     )

I got a question here, why is not simply "kdeui" used, but why does the 
INTERFACE_INCLUDE_DIRECTORIES target property have to be used ?

Also, does this apply to the BUILD and INSTALL interface or is the BUILD 
interface of kdeui extracted for BUILD interface of kwidgets and respectively 
also for the INSTALL interface ?


Alex


More information about the Kde-buildsystem mailing list