[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