title: What is the difference between PACKAGE_VERSION_COMPATIBLE and PACKAGE_VERSION_UNSUITABLE in CMake?
body: <p>When loading packages using <code>find_package(...)</code> in cmake the version file has to declare 5 variables. Two of them are</p>
  <ul>
  <li>PACKAGE_VERSION_COMPATIBLE</li>
  <li>PACKAGE_VERSION_UNSUITABLE</li>
  </ul>
  <p>according to <a href="https://cmake.org/cmake/help/git-master/manual/cmake-packages.7.html#creating-packages" rel="nofollow noreferrer">the documentation</a> they are used for</p>
  <blockquote>
  <p>PACKAGE_VERSION_COMPATIBLE</p>
  <p>True if version is compatible</p>
  <p>PACKAGE_VERSION_UNSUITABLE</p>
  <p>True if unsuitable as any version</p>
  </blockquote>
  <p>Which leaves me puzzled. <code>PACKAGE_VERSION_UNSUITABLE</code> has been introduced in CMake 2.6.2 . However it seems mutually exclusive to <code>PACKAGE_VERSION_COMPATIBLE</code>. So why does it exist?</p>
  <p>Can somebody enlighten me about the difference between being compatible and (un)suitable and maybe give an example, where both values are either <code>true</code> or <code>false</code>?</p>