[CMake] How to make cmake-2.6 tell why it fails

Martin Costabel costabel at wanadoo.fr
Thu Aug 21 15:02:51 EDT 2008


Martin Costabel wrote:
[]
> Now I only have to find out why another user gets the error
> 
> "find_package cannot find package FREETYPE because FREETYPE_DIR is
> set to "/sw/lib/freetype219" which is not a directory containing a 
> package configuration file (or it is not for the requested version)."
> 
> although everyone else with the same configuration does not get this 
> error. Maybe another framework interfering...

Not a framework this time. Turns out it was a case-sensitivity problem:

The scribus CMakeLists.txt had

FIND_PACKAGE(FREETYPE REQUIRED)

but the module in cmake-2.6/Modules/ is called FindFreetype.cmake.
This is no problem for people running a case-insensitive file system, 
which is the majority on MacOSX. There cmake simply loads a file named 
FindFREETYPE.cmake, or so it thinks. But MacOSX also offers case 
sensitive file systems, and there it fails. It works with

FIND_PACKAGE(Freetype REQUIRED)

Three remarks:

1. It would have been nice if cmake had given a comprehensible error 
message, like not finding a fitting Module.

2. Why are the names of the Find*.cmake Modules such a colorful mixture 
of upper- and lowercase? How should a cmake user remember that it is 
Curl and CUPS (or the other way round?), Freetype and EXPAT?

2. I don't know how this can work on Linux where the file system usually 
is case sensitive. I'll ask the scribus developers about it.

-- 
Martin






More information about the CMake mailing list