[CMake] find_package, quiet and yyyConfig files
Michael Hertling
mhertling at online.de
Thu Feb 10 09:12:11 EST 2011
On 02/10/2011 09:03 AM, Micha Renner wrote:
> There is a library, which is described with these TLIBConfig.cmake,
> TLIBConfigVersion.cmake files (The version of the library is 2.1).
>
> The library is used by
> FIND_PACKAGE(TLIB 2.30 QUIET)
>
> Is there a way to check the version of the library after FIND_PACKAGE?
> E.g., if TLIB_VERSION would have a value, then the library exists, but
> has the wrong version.
>
> Micha
AFAICS from the documentation in [1], FIND_PACKAGE() is not obliged to
set TLIB_VERSION et al. if no acceptable TLIBConfig[Version].cmake has
been found, and that's quite reasonable: Suppose you've multiple TLIB
installations, and all of them have inacceptable versions; which one
would you expect to be mentioned in TLIB_VERSION?
IMO, the best you can do in order to find out an available package's
actual version after the search for a specific version has failed is:
FIND_PACKAGE(TLIB 2.30 QUIET)
IF(NOT TLIB_FOUND)
FIND_PACKAGE(TLIB QUIET)
# Check actual version.
ENDIF()
Here, of course, I'm relying on the assumption that a FIND_PACKAGE()
call without version means that I'm willing to accept any version,
and that the package's version file behaves accordingly.
Regards,
Michael
> [1] http://www.cmake.org/Wiki/CMake/Tutorials/Packaging#Package_Version_Files
More information about the CMake
mailing list