Bug #71089 CMake warning when generating Makefile
Submitted: 5 Dec 2013 12:14 Modified: 9 Jan 2014 23:15
Reporter: Hartmut Holzgraefe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:5.5.38 OS:Linux
Assigned to: Tor Didriksen CPU Architecture:Any

[5 Dec 2013 12:14] Hartmut Holzgraefe
Description:
The following warning popped up in cmake-gui upon generating the Makefile:

CMake Warning (dev) in libmysql/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 "libmysql" has an INTERFACE_LINK_LIBRARIES property which differs
  from its LINK_INTERFACE_LIBRARIES properties.

  INTERFACE_LINK_LIBRARIES:

    -lpthread;clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt;dl

  LINK_INTERFACE_LIBRARIES:

This warning is for project developers.  Use -Wno-dev to suppress it.

How to repeat:
in cmake-gui press "Configure", then "Generate" buttons while using default settings
[5 Dec 2013 15:34] Hartmut Holzgraefe
CMake 2.8.12.1 on Debian "testing"
[5 Dec 2013 17:57] MySQL Verification Team
Thank you for the bug report.

Looking for nanosleep - not found
Using cmake version 2.8.12.1
Not building NDB
Library mysqlclient depends on OSLIBS ws2_32;Secur32
Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.
If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://foo.bar.com:80
Library mysqlserver depends on OSLIBS ws2_32
Cannot find wix 3, installer project will not be generated
Configuring done
CMake Warning (dev) in libmysql/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 "libmysql" has an INTERFACE_LINK_LIBRARIES property which differs
  from its LINK_INTERFACE_LIBRARIES properties.

  INTERFACE_LINK_LIBRARIES:

    ws2_32;clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt;auth_win_client

  LINK_INTERFACE_LIBRARIES:

    

This warning is for project developers.  Use -Wno-dev to suppress it.

Generating done

Workaround use an olde Cmake version i.e: 2.6.4.
[11 Dec 2013 17:49] Tor Didriksen
Posted by developer:
 
added 
+IF(CMAKE_VERSION VERSION_GREATER "2.8.11")
+  CMAKE_POLICY(SET CMP0022 OLD)
+ENDIF()
[9 Jan 2014 23:15] Paul DuBois
Noted in 5.7.4 changelog.

CMake produced not-useful warnings about INTERFACE_LINK_LIBRARIES
policy.
[3 Feb 2014 9:23] Roel Van de Paar
cmake on Ubuntu saucy has version 2.8.11.1, so (CMAKE_VERSION VERSION_GREATER "2.8.11") is true, but policy CMP0022 was introduced in 2.8.12.
so, cmake 2.8.11.1 failed with message "Policy CMP0022 is unknown".

the fix: compare 2.8.12, not 2.8.11

Can you fix?
[3 Feb 2014 9:27] Roel Van de Paar
Please also fix this in 5.6.
[5 Mar 2014 17:22] Paul DuBois
Noted in 5.5.38, 5.6.18 changelogs.
[31 May 2014 13:47] Laurynas Biveinis
$ bzr log -r 4610
------------------------------------------------------------
revno: 4610
committer: Tor Didriksen <tor.didriksen@oracle.com>
branch nick: 5.5
timestamp: Wed 2014-03-05 13:01:54 +0100
message:
  Backport of:
    Bug#17894997 CMAKE WARNING WRT INTERFACE_LINK_LIBRARIES
    Bug#17905155 CMAKE WARNING WHEN GENERATING MAKEFILE
    Bug#71089 CMake warning when generating Makefile
  
  Use old policy for LINK_INTERFACE_LIBRARIES.