[cmake-developers] cmake --find-package

Alexander Neundorf neundorf at kde.org
Wed Apr 23 16:40:29 EDT 2014


On Wednesday, April 23, 2014 13:21:39 Alan W. Irwin wrote:
> On 2014-04-23 13:21-0400 Bill Hoffman wrote:
> > On 4/23/2014 12:22 PM, Alan W. Irwin wrote:
> >> However, if you discover the problem is a general one for
> >> --find-package and Qt5, then it appears that Qt5 might be a good
> >> illustrative example to use for your renewed effort at developing a
> >> reliable --find-package capability.
> > 
> > I recently ran into a project using --find-package and found a limitation
> > that could be very problematic.  If a find module in CMake uses a
> > try-compile, or tries to figure out anything to do with the compiler, this
> > command will fail.    I am not sure there is a good way around this.
> > Certainly try-compile is not actively discouraged in the CMake Modules, so
> > this can be added to any module at any time, breaking --find-package in
> > the
> > future.
> 
> Hi Bill:
> 
> You cannot use --find-package unless you specify the language.  So I
> assume that --find-package enables the specified language, and, in
> general, you would think that try-compile would work properly under
> those circumstances.

No.

It doesn't really enable a language, it only loads a bunch of files to set the 
most urgently required variables.
Most of it is implemented in CMakeFindPackageMode.cmake

It is basically wrapping a find_package() call, setting up just enough to make 
it succeed usually.
try_compile() will fail.

My plan was to limit this mode to Config.cmake files only, but as I said, due 
to the changes in CMake this has become too much work, so I won't work on that 
in the forseeable future.

Alex





More information about the cmake-developers mailing list