0

I have custom Find.cmake. Is it possible to retrieve version, passed to the find_package() call, inside of it?

starball
  • 20,030
  • 7
  • 43
  • 238
Nickolay Olshevsky
  • 13,706
  • 1
  • 34
  • 48

1 Answers1

1

The requested version can be extracted via <PackageName>_FIND_VERSION variable, where <PackageName> substitution denotes the package name (the first parameter of the find_package):

if(Foo_FIND_VERSION VERSION_LESS 2.4)
  # search for the old variant of the package Foo
else()
  # search for the new variant of the package Foo
endif()

There are also other variables, which describes the version request in more details. See documentation for find_package.


Note, that if your Find script searches the only instance of the package, then you don't need to explicitly check the requested version: just extract version of the package which you have found, and pass it via VERSION_VAR parameter of find_package_handle_standard_args helper. That helper will automatically checks whether requested version is compatible with the one which has been found.

Tsyvarev
  • 60,011
  • 17
  • 110
  • 153