On 01/30/2013 03:15 AM, Stephen Kelly wrote: > Brad King wrote: > >>> I've implemented it in the tll-includes-defines branch in my clone. I've >>> only tested it manually though. >> >> Yes, that looks good. Please add tests covering each case: > > I've pushed it again to my clone. > > Once the fix-target-property-commands topic is in master, we can rebase it > if needed and get it merged to next.
I just tried your branch with a simple test case: -------------------------------------------------------------------------- cmake_minimum_required(VERSION 2.8.10.20130129) project(FOO C) set(CMAKE_INSTALL_PREFIX "${FOO_BINARY_DIR}/root") add_library(foo SHARED foo.c) target_include_directories(foo PUBLIC $<BUILD_INTERFACE:${FOO_SOURCE_DIR}> $<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include> ) add_library(bar SHARED bar.c) #set(m m) # uncommenting breaks this target_link_libraries(bar LINK_PUBLIC foo ${m}) get_property(iface TARGET bar PROPERTY INTERFACE_INCLUDE_DIRECTORIES) message(STATUS "bar.INTERFACE_INCLUDE_DIRECTORIES = [${iface}]") export(TARGETS bar foo FILE Targets.cmake) install(TARGETS bar foo DESTINATION lib EXPORT Foo) install(EXPORT Foo DESTINATION lib/cmake/foo) -------------------------------------------------------------------------- It works, but then uncommenting the marked line to tll a non-target produces: -- bar.INTERFACE_INCLUDE_DIRECTORIES = [$<TARGET_PROPERTY:foo,INTERFACE_INCLUDE_DIRECTORIES>;$<$<TARGET_DEFINED:m>:$<TARGET_PROPERTY:m,INTERFACE_INCLUDE_DIRECTORIES>>] CMake Error at CMakeLists.txt:16 (export): $<TARGET_PROPERTY:m,prop> requires its first parameter to be a reachable target. The TARGET_PROPERTY errors out even though TARGET_DEFINED:m should be false. Also, will the non-target expressions added by tll be preprocessed out during export()/install(EXPORT)? -Brad -- 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