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() | 
