On 2/17/2012 4:29 AM, Alexander Neundorf wrote:
> I collected the various error messages which can be produced in the different
> cases:
> * package not found
> * package found, but version doesn't match
>
> * REQUIRED
> * without REQUIRED
>
> * find_package() with no Find-module present
> * find_package(NO_MODULE)
> * find_package() with a wrapper Find-module which does:
>       find_package(ecm QUIET NO_MODULE)
>       fphsa(ecm CONFIG_MODE)

Nice.  Can you code this into a test in the Tests/CMakeOnly directory?
That way we will have a single place to reference to see all the current
error messages and we will know if things change accidentally.

On 2/17/2012 5:48 AM, Alexander Neundorf wrote:
These three points and a small bug fix (error message was not printed at all
for an invalid CONFIGS name) are now in the FindPackage_ImprovedErrorMessages
branch and merged into next.

From your commit message:

> CMake Error at CMakeLists.txt:7 (find_package):
>   Could not find module Findecm.cmake or a configuration file
>   for package ecm with one of the following names:
>
>     ecmConfig.cmake
>     ecm-config.cmake
>
>   Adjust CMAKE_MODULE_PATH to find Findecm.cmake.  To find
>   the configuration file, set CMAKE_PREFIX_PATH to the installation prefix of
>   ecm, or set ecm_DIR to the directory
>   containing a CMake configuration file for ecm.

Perhaps we can make the distinction between user and developer right
in the message.  When there is no Find module the proper message that
a user sees should talk about ecm_DIR and CMAKE_PREFIX_PATH only.
This should be the focus.  We can then add an extra note to help
developers use Find modules.  Consider:

 CMake Error at CMakeLists.txt:7 (find_package):
   No package configuration file for "ecm" found by names:

     ecmConfig.cmake
     ecm-config.cmake

   Add the installation prefix of "ecm" to CMAKE_PREFIX_PATH or
   set "ecm_DIR" to a directory containing one of the above files.

   (If you are a developer expecting this find_package to load a
    Findecm.cmake module then ensure it lies in CMAKE_MODULE_PATH.)

-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

Reply via email to