On 3/7/2012 9:49 AM, Michael Hertling wrote:
been found, but in module mode, AFAIK, it's set to Foo_DIR-NOTFOUND even if a find module has succeeded
The Foo_DIR variable is not set or added to the cache at all if a FindFoo module is loaded regardless of whether it succeeds. It is only if no FindFoo module is found that Foo_DIR appears. > my question is still: How can I figure out in a reliable manner > that FIND_PACKAGE(Foo ...) has found neither FindFoo.cmake nor > FooConfig.cmake? The call site should *know* whether it is intending to use a Find module or look for a package config file based on whether the the author adds a Find module to CMAKE_MODULE_PATH. If using a Find module then use its documentation to check the result. FPHSA sets FOO_FOUND. Otherwise if using Config mode then check Foo_FOUND. Actually, the documentation of find_package says: <package>_FOUND will be set to indicate whether the package was found. Config mode *always* sets that. If it isn't set correctly by a Find module that is a bug in the Find module IMO. FPHSA should be fixed to set both Foo_FOUND and FOO_FOUND. I know Alex always says that we should use UPPERCASE_VARS instead of ExactCase_VARS but the *ONLY* reason ever given is because "most" modules have done that historically. That argument just extends the problem into the future as more and more new modules use the confusing convention. -Brad -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers