On Friday 06 of December 2013 03:54:49 Darrell Anderson wrote:
> All,
>
> I gave a pass at compiling R14 on the newly released Slackware
> 14.1, which contains cmake 2.8.12.
>
> The arts package compiled with cmake warnings I never saw before
> and tdelibs FTBFS with the same warnings. The arts warnings:
>
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in flow/gsl/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in flow/gsl/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
>
> tdelibs:
>
> CMake Warning (dev) in tdecore/tdehw/CMakeLists.txt:
> CMake Warning (dev) in tdecore/tdehw/networkbackends/network-
> manager/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in tdecore/svgicons/CMakeLists.txt:
> CMake Warning (dev) in tdeio/tdeio/CMakeLists.txt:
> CMake Warning (dev) in libltdl/CMakeLists.txt:
> CMake Warning (dev) in tdehtml/java/CMakeLists.txt:
>
> Following the colon of each warning:
>
> Common to both arts and tdelibs:
>
> CMake Warning (dev) in libltdl/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.
>
> Static library target "ltdlc-static" has a
> INTERFACE_LINK_LIBRARIES
> property. This should be preferred as the source of the link
> interface for
> this library. Ignoring the property and using the link
> implementation as
> the link interface instead.
> This warning is for project developers. Use -Wno-dev to suppress
> it.
>
>
> If I understand correctly from reading around the web, the cause is
> cmake 2.8.12 changed LINK_INTERFACE_LIBRARIES to
> INTERFACE_LINK_LIBRARIES.
>
> If that is correct, then seems TDEMacros.cmake:696 needs to be
> updated to handle both variables:
>
> target_link_libraries( ${_target} LINK_INTERFACE_LIBRARIES
> ${_shared_libs} )
>
> I'm wild guessing something similar to this (I'm not a cmake guru):
>
> If (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${
> CMAKE_PATCH_VERSION } GREATER 2.8.11)
> target_link_libraries( ${_target} INTERFACE_LINK_LIBRARIES
> ${_shared_libs} )
> else()
> target_link_libraries( ${_target} LINK_INTERFACE_LIBRARIES
> ${_shared_libs} )
> endif()
>
> I presume others will experience these same warnings and build
> failures when they update to cmake 2.8.12.
>
> Regardless, this requires a change to the common cmake sources,
> which need to be propogated through the source tree.
>
> Darrell
>
I dove into research the problem and I noticed that on Jessie is reported
another problem. For example:
CMake Warning (dev) in tdefx/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 "tdefx-shared" has an INTERFACE_LINK_LIBRARIES property which
differs from its LINK_INTERFACE_LIBRARIES properties.
INTERFACE_LINK_LIBRARIES:
tqt;tqt-mt;Xrender;X11;c;tqt;tqt-mt;Xrender;X11;c
LINK_INTERFACE_LIBRARIES:
tqt;tqt-mt;Xrender;X11;c
This warning is for project developers. Use -Wno-dev to suppress it.
Therefore, I have prepared a patch that could solve both of these problems.
Please, test it.
Slavek
--
Attachments: