&gt; I&#x27;m not sure what you mean by databases of systems and features...<p>I didn&#x27;t really mean a literal database. I meant stuff like this:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;Kitware&#x2F;CMake&#x2F;blob&#x2F;master&#x2F;Modules&#x2F;FindQt4.cmake#L1068" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Kitware&#x2F;CMake&#x2F;blob&#x2F;master&#x2F;Modules&#x2F;FindQt4...</a><p>This is pretty typical CMake. It&#x27;s encoding that for a particular version of Qt, add a few more compilation flags. It&#x27;s a &quot;knowledge base&quot; of Qt versions encoded as a CMake module.<p>The autoconf way would be to try to link a minimal program to Qt, and if it fails, try to see if adding more libraries makes the linking succeed.<p>Or this, for example:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;Kitware&#x2F;CMake&#x2F;blob&#x2F;master&#x2F;Modules&#x2F;FindOpenSSL.cmake#L112" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Kitware&#x2F;CMake&#x2F;blob&#x2F;master&#x2F;Modules&#x2F;FindOpe...</a><p>It is trying to account for two popular compilers on Windows but not with Cygwin. It&#x27;s the whole chain of &quot;if Windows, if cygwin, if mingw, if msvc&quot; what I called a &quot;database&quot; above.<p>Doesn&#x27;t clang work on Windows these days? What will this knowledge base do now? Shouldn&#x27;t clang work almost like mingw? But because it misses the &quot;if mingw&quot; branch, code that probably would have worked for clang will be skipped over.