On Monday, November 04, 2013 09:48:57 AM Brad King wrote: > On 11/02/2013 07:29 AM, Brad King wrote: > > Policy CMP0022's NEW behavior is supposed to be that the > > link interface is exactly specified by INTERFACE_LINK_LIBRARIES. > > Therefore in this case the plain tll signature should go > > ahead and populate *both* INTERFACE_LINK_LIBRARIES *and* > > LINK_LIBRARIES. > > After working through the details of this over the weekend > the fix and a bunch of tests are now in master. It ended > up taking several commits. The main one is: > > CMP0022: Plain target_link_libraries must populate link interface > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef10b87c > > Two other important changes are: > > Do not export INTERFACE_LINK_LIBRARIES from non-linkable targets > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=23d21b78 > > CMP0022: Warn about a given target at most once > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0a561a03 > > I plan to include all this in 2.8.12.1. Please test ASAP. > > Thanks, > -Brad
The problem I reported before indeed appears fixed. But I see 2 others new problems. 1) cmake_minimum_required(VERSION 2.8) add_library(foo SHARED foo.cpp) add_library(bar SHARED bar.cpp) target_link_libraries(bar foo) set_target_properties(bar PROPERTIES LINK_INTERFACE_LIBRARIES "") add_executable(exe exe.cpp) target_link_libraries(exe bar) With 2.8.12.1, I now get a new warning that I did not get with 2.8.12. I'm not sure why I'm getting that warning because the linking of exe looks correct. CMake Warning (dev) in CMakeLists.txt: Policy CMP0022 is not set: INTERFACE_LINK_LIBRARIES defines the link interface. Run "cmake --help-policy CMP0022" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Target "bar" has an INTERFACE_LINK_LIBRARIES property which differs from its LINK_INTERFACE_LIBRARIES properties. INTERFACE_LINK_LIBRARIES: foo LINK_INTERFACE_LIBRARIES: 2) cmake_minimum_required(VERSION 2.8.12) add_library(foo SHARED foo.cpp) add_library(bar SHARED bar.cpp) target_link_libraries(bar foo) set_target_properties(bar PROPERTIES LINK_INTERFACE_LIBRARIES "") add_executable(exe exe.cpp) target_link_libraries(exe bar) I get no warning or error, but my LINK_INTERFACE_LIBRARIES property was not respected and it linked both foo and bar into exe. This appears to be a regression from 2.8.12 to 2.8.12.1. -- Clinton Stimpson Elemental Technologies, Inc Computational Simulation Software, LLC www.csimsoft.com -- 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