Alexander Neundorf wrote: > On Monday 29 July 2013, Stephen Kelly wrote: >> Alexander Neundorf wrote: >> > So it can be used in tll() calls to link against the library (package). >> > What makes it differ from Foo_LIBRARIES, is that CMake checks that each >> > of the items listed in this variable >> > * is an existing target >> > >> > * has the INTERFACE_INCLUDE_DIRS property set. >> >> Are you really certain it is always an error for a target to not set >> this? > > I think so. > If I want to use symbols from a library, I should include its headers, and > for that the include dirs need to be known. > > For header-only libraries even more. > > Are there cases where this is not the case ?
There will/can be in the future. add_library(picon INTERFACE) set_property(TARGET picon INTERFACE_POSITION_INDEPENDENT_CODE ON) add_library(picoff INTERFACE) set_property(TARGET picoff INTERFACE_POSITION_INDEPENDENT_CODE ON) ... # Use linking to psuedo targets to enable compiler options: add_executable(foo main.cpp) target_link_libraries(foo PRIVATE picon) add_executable(bar main.cpp) target_link_libraries(bar PRIVATE picoff) Or: add_library(cxx11features INTERFACE) set_property(TARGET cxx11features INTERFACE_COMPILE_OPTIONS $<$<CXX_COMPILER_ID:GNU>:-std=c++0x> $<$<CXX_COMPILER_ID:Clang>:-std=c++11> ) set(IS_GNU $<CXX_COMPILER_ID:GNU>) set(IS_46 $<VERSION_GREATER:$<CXX_COMPILER_VERSION>,4.6>) set_property(TARGET cxx11features INTERFACE_COMPILE_DEFINITIONS $<$<AND:${IS_GNU},${IS_46}>:CXXFEATURES_NULLPTR_FOUND> ) # Possibly also specify libcxx compiler option if using # recent clang on apple. ... add_executable(foo main.cpp) target_link_libraries(foo cxx11features) Thanks, Steve. -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers