<br><br><div class="gmail_quote">2010/8/4 Brad King <span dir="ltr">&lt;<a href="mailto:brad.king@kitware.com">brad.king@kitware.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On 08/04/2010 10:25 AM, Adolfo Rodríguez Tsouroukdissian wrote:<br>
&gt; I&#39;m writing a package config file foo-config.cmake, and I&#39;m providing<br>
&gt; version checking via the foo-config-version.cmake. Everything works<br>
&gt; fine, but I&#39;ve noticed that when version checking fails, the reported<br>
&gt; error message is uninformative and misleading. It states:<br>
<br>
</div>If you call<br>
<br>
  find_package(Foo NO_MODULE)<br>
<br>
you will get a better error message.<br></blockquote><div><br>Different error message, but not better. I may have not been clear enough on the situation. The foo-config.cmake file is located OK, and:<br><br>find_package(Foo REQUIRED NO_MODULE) <br>
<br>works as expected. Now, if I do:<br><br>find_package(Foo 6.6.6 REQUIRED NO_MODULE)<br><br>and 6.6.6 is a non-valid version (i.e., PACKAGE_VERSION_COMPATIBLE is set to FALSE in foo-config-version.cmake), then I get the error message that foo-config.cmake is not found, instead of something related to the request of an incompatible version.<br>
<br>Cheers,<br><br>Adolfo<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
&gt; &lt;quote&gt;<br>
&gt; Could not find module FindFoo.cmake or a configuration file for<br>
&gt;   package Foo.<br>
&gt;<br>
&gt;   Adjust CMAKE_MODULE_PATH to find FindFoo.cmake or set Foo_DIR<br>
&gt;   to the directory containing a CMake configuration file for Foo.  The<br>
&gt;   file will have one of the following names:<br>
&gt;<br>
&gt;     FooConfig.cmake<br>
&gt;     foo-config.cmake<br>
&gt; &lt;quote/&gt;<br>
&gt;<br>
&gt; I would expect something more in the lines of &quot;Unable to find a<br>
&gt; compatible Foo version.&quot;, which I can still provide in my<br>
&gt; foo-config-version.cmake. I guess I would just like the above message<br>
&gt; not to be shown to prevent user confusion (foo-config.cmake exists and<br>
&gt; can be found). Does this sound like a ticket?.<br>
<br>
</div>No, the current behavior is intentional.  The problem is that find_package<br>
has two modes.  First it looks for a FindXXX.cmake file and loads that if<br>
it finds one (module mode).  If it does not then it looks for XXXConfig<br>
(config mode) with XXX_DIR.  When the command was originally created we<br>
assumed that anyone that wants it to use FindXXX would ensure that it is<br>
in the CMAKE_MODULE_PATH before calling find_package(XXX).  Therefore we<br>
made the default error message talk about just XXX_DIR and not mention<br>
the module mode at all.  This is the type of message you seem to want.<br>
However, people that *did* want to use FindXXX in module mode but failed<br>
to put it in the CMAKE_MODULE_PATH complained that the error message<br>
gave no information about missing FindXXX and talked only about XXX_DIR.<br>
<br>
Now the message talks about both options.<br>
<br>
-Brad<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</blockquote></div><br>