From kde-commits Fri Feb 21 11:17:46 2014 From: Alex Merry Date: Fri, 21 Feb 2014 11:17:46 +0000 To: kde-commits Subject: [extra-cmake-modules] modules: Defer to CMake's find_dependency macro if it exists Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=139298147512765 Git commit dfbbd75577d60299706e95ced5c4a245438f6a03 by Alex Merry. Committed on 03/02/2014 at 18:38. Pushed by alexmerry into branch 'master'. Defer to CMake's find_dependency macro if it exists This will be available in CMake 3.0.0. This way, we automatically pick up any new features from it. REVIEW: 115775 M +26 -22 modules/ECMPackageConfigHelpers.cmake http://commits.kde.org/extra-cmake-modules/dfbbd75577d60299706e95ced5c4a245= 438f6a03 diff --git a/modules/ECMPackageConfigHelpers.cmake b/modules/ECMPackageConf= igHelpers.cmake index 7801739..ee6bfd6 100644 --- a/modules/ECMPackageConfigHelpers.cmake +++ b/modules/ECMPackageConfigHelpers.cmake @@ -100,31 +100,35 @@ macro(set_and_check _var _file) endif() endmacro() = -macro(find_dependency dep version) - if (NOT \${dep}_FOUND) +include(CMakeFindDependencyMacro OPTIONAL RESULT_VARIABLE _CMakeFindDepend= encyMacro_FOUND) = - set(exact_arg) - if(\${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_EXACT) - set(exact_arg EXACT) - endif() - set(quiet_arg) - if(\${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) - set(quiet_arg QUIET) - endif() - set(required_arg) - if(\${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) - set(required_arg REQUIRED) - endif() - - find_package(\${dep} \${version} \${exact_arg} \${quiet_arg} \${requir= ed_arg}) +if (NOT _CMakeFindDependencyMacro_FOUND) + macro(find_dependency dep version) if (NOT \${dep}_FOUND) - set(\${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE \"\${CMAKE_FIND_PA= CKAGE_NAME} could not be found because dependency \${dep} could not be foun= d.\") + + set(exact_arg) + if(\${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_EXACT) + set(exact_arg EXACT) + endif() + set(quiet_arg) + if(\${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) + set(quiet_arg QUIET) + endif() + set(required_arg) + if(\${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) + set(required_arg REQUIRED) + endif() + + find_package(\${dep} \${version} \${exact_arg} \${quiet_arg} \${requ= ired_arg}) + if (NOT \${dep}_FOUND) + set(\${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE \"\${CMAKE_FIND_= PACKAGE_NAME} could not be found because dependency \${dep} could not be fo= und.\") + endif() + set(required_arg) + set(quiet_arg) + set(exact_arg) endif() - set(required_arg) - set(quiet_arg) - set(exact_arg) - endif() -endmacro() + endmacro() +endif() = ") endif()