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:
parent
948d5d18fd
commit
08ba128f51
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue