Am Freitag, den 03.12.2010, 08:45 +0100 schrieb Andreas Pakulat: > On 03.12.10 07:11:23, Micha Renner wrote: > > There is a small library "TLib" which is installed like this > > > > Install the project... > > -- Install configuration: "Debug" > > -- Installing: /usr/local/lib/libTLibd.so > > -- Installing: /usr/local/lib/TLib/TLibExport.cmake > > -- Installing: /usr/local/lib/TLib/TLibExport-debug.cmake > > -- Installing: /usr/local/include/TLib/cmFile.h > > -- Installing: /usr/local/lib/TLib/TLIBConfig.cmake > > -- Installing: /usr/local/lib/TLib/TLIBConfigVersion.cmake > > > > The CMakeLists file for the application program has the following line > > to find the library > > > > FIND_PACKAGE(TLIB) > > > > This works, surprisingly, very good. No CMAKE_MODULE_PATH, no TLIB_DIR > > in this case. > > > > But... > > > > If I call FIND_PACKAGE with version: > > FIND_PACKAGE(TLIB 1.3) > > > > I get the std-warning: > > ----------------- > > CMake Warning at TestDLL/CMakeLists.txt:20 (FIND_PACKAGE): > > Could not find module FindTLIB.cmake or a configuration file for > > package > > TLIB. > > > > Adjust CMAKE_MODULE_PATH or TLIB_DIR... > > ----------------- > > > > > > Why can't CMake find the TLIBConfig file, if FIND_PACKAGE is called with > > version and TLIB_DIR is not set? > > The problem might not be finding the Config file, but rather that the > ConfigVersion file doesn't set the VERSION_COMPATIBLE or VERSION_EXACT > variables. Or maybe it even sets the VERSION_UNSUITABLE to indicate that > the installed version of TLib doesn't match the version you request. > > Unfortunately cmake currently cannot seem to distinguish between these > two cases (non-matching version vs. no config-file found), hence it > produces the same message in both cases. >
This was my first impression, so I used the ConfigVersion file of http://www.cmake.org/Wiki/CMake_2.6_Notes to be on the safe side. SET(PACKAGE_NAME "TLib") SET(PACKAGE_VERSION 1.3) IF("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL 1) SET(PACKAGE_VERSION_COMPATIBLE 1) IF("${PACKAGE_FIND_VERSION_MINOR}" EQUAL 3) SET(PACKAGE_VERSION_EXACT 1)# exact match for version 1.3 ENDIF("${PACKAGE_FIND_VERSION_MINOR}" EQUAL 3) ENDIF("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL 1) But this also does not work. Greetings Micha _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake