From 08ba128f51c94e3e905d45cc36c6fb21d020df56 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 6 Mar 2014 15:03:42 +0100 Subject: find_dependency: Don't propagate EXACT argument. If a package is requested with an EXACT version, that doesn't imply that dependencies must be found EXACTly too. Extend the macro to allow specifying that a dependency must be found by EXACT version instead. --- Modules/CMakeFindDependencyMacro.cmake | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Modules/CMakeFindDependencyMacro.cmake b/Modules/CMakeFindDependencyMacro.cmake index 9334ba3..8c61516 100644 --- a/Modules/CMakeFindDependencyMacro.cmake +++ b/Modules/CMakeFindDependencyMacro.cmake @@ -4,7 +4,7 @@ # # :: # -# find_dependency( []) +# find_dependency( [ [EXACT]]) # # # ``find_dependency()`` wraps a :command:`find_package` call for a package @@ -34,9 +34,18 @@ macro(find_dependency dep) set(cmake_fd_version ${ARGV1}) endif() set(cmake_fd_exact_arg) - if(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION_EXACT) + if(${ARGC} GREATER 2) + if (NOT ${ARGV2} STREQUAL EXACT) + message(FATAL_ERROR "Invalid arguments to find_dependency") + endif() + if (NOT ${cmake_fd_version}) + message(FATAL_ERROR "Invalid arguments to find_dependency. EXACT may only be specified if a VERSION is specified") + endif() set(cmake_fd_exact_arg EXACT) endif() + if(${ARGC} GREATER 3) + message(FATAL_ERROR "Invalid arguments to find_dependency") + endif() set(cmake_fd_quiet_arg) if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) set(cmake_fd_quiet_arg QUIET) -- cgit v0.12