diff options
author | Alex Merry <kde@randomguy3.me.uk> | 2014-02-03 18:38:32 +0000 |
---|---|---|
committer | Alex Merry <kde@randomguy3.me.uk> | 2014-02-21 11:17:12 +0000 |
commit | dfbbd75577d60299706e95ced5c4a245438f6a03 (patch) | |
tree | 231160d2017b2caa5eeab8afd2dc9a4aecbb99f7 /modules | |
parent | a68906cfa8ed4cba4aee06e8f17c7164cfe216df (diff) | |
download | extra-cmake-modules-dfbbd75577d60299706e95ced5c4a245438f6a03.tar.gz extra-cmake-modules-dfbbd75577d60299706e95ced5c4a245438f6a03.tar.bz2 |
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
Diffstat (limited to 'modules')
-rw-r--r-- | modules/ECMPackageConfigHelpers.cmake | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/modules/ECMPackageConfigHelpers.cmake b/modules/ECMPackageConfigHelpers.cmake index 78017393..ee6bfd6f 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 _CMakeFindDependencyMacro_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} \${required_arg}) +if (NOT _CMakeFindDependencyMacro_FOUND) + macro(find_dependency dep version) 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 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} \${required_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 found.\") + 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() |