From: Sergiu Deitsch Date: Thu, 4 Jan 2018 01:37:49 +0000 (+0100) Subject: cmake: use gflags package config instead of a find module X-Git-Tag: accepted/tizen/5.0/unified/20181102.024921~13 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fglog.git;a=commitdiff_plain;h=a92e1d95c5e6d7da129eb66f60746edda9022f23 cmake: use gflags package config instead of a find module This allows to avoid conflicts between third party gflags find modules floating around. If a package provide a local version of gflags find module, clients which locate glog will incorrectly use it. Another problem is a CMake error message "cmake_policy PUSH without matching POP" in nested find_package calls. In summary, we need to ensure to use the original gflags package config. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 87f867d..842249f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -599,8 +599,19 @@ install (TARGETS glog LIBRARY DESTINATION ${_glog_CMake_LIBDIR} ARCHIVE DESTINATION ${_glog_CMake_LIBDIR}) +set (glog_POLICY_VERSION 3.0) + if (gflags_FOUND) - set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})") + # Ensure clients locate only the package config and not third party find + # modules having the same name. This avoid cmake_policy PUSH/POP errors. + if (CMAKE_VERSION VERSION_LESS 3.9) + set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION})") + else (CMAKE_VERSION VERSION_LESS 3.9) + # Passing additional find_package arguments to find_dependency is possible + # starting with CMake 3.9. + set (glog_POLICY_VERSION 3.9) + set (gflags_DEPENDENCY "find_dependency (gflags ${gflags_VERSION} NO_MODULE)") + endif (CMAKE_VERSION VERSION_LESS 3.9) endif (gflags_FOUND) configure_package_config_file (glog-config.cmake.in diff --git a/glog-config.cmake.in b/glog-config.cmake.in index bf06a62..a586cbb 100644 --- a/glog-config.cmake.in +++ b/glog-config.cmake.in @@ -1,5 +1,5 @@ cmake_policy (PUSH) -cmake_policy (VERSION 3.0) +cmake_policy (VERSION @glog_POLICY_VERSION@) @PACKAGE_INIT@