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.
This commit is contained in:
Stephen Kelly 2014-03-06 15:03:42 +01:00
parent 948d5d18fd
commit 08ba128f51
1 changed files with 11 additions and 2 deletions

View File

@ -4,7 +4,7 @@
#
# ::
#
# find_dependency(<dep> [<version>])
# find_dependency(<dep> [<version> [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)