Issue using CMake : gtk module
I'm attempting to compile zzogl using CMake and I keep running into issues. My first issue s开发者_如何转开发tated that I needed pkgconfig, so I installed that, for which I also had to install MacPorts. Then it said I needed gtk+-2.0 module, so I got that too. After that took forever to install, I still get this error:
checking for module 'gtk+-2.0'
package 'gtk+-2.0' not found
CMake Error at /Applications/CMake 2.8-2.app/Contents/share/cmake-2.8/Modules/FindPkgConfig.cmake:266 (message):
A required package was not found
Call Stack (most recent call first):
/Applications/CMake 2.8-2.app/Contents/share/cmake-2.8/Modules/FindPkgConfig.cmake:320 (_pkg_check_modules_internal)
CMakeLists.txt:106 (pkg_check_modules)
CMake Error at cmake/funcs.cmake:32 (message):
gtk not found, aborting...
Call Stack (most recent call first):
cmake/funcs.cmake:23 (reportFound)
CMakeLists.txt:107 (checkFor)
Configuring incomplete, errors occurred!
I'm not really familiar with what I am doin, and it is completely possible I am doing it all wrong. Anyone have any incite into my problem? I am using a mac with snow leopard btw.
Did you install gtk with a command similar to sudo port install gtk2
? If yes, then normally gtk should be found by cmake. You can test if gtk is correctly found by pkg-config manually like this:
pkg-config --cflags gtk+-2.0
which should print something like
-pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12
but with different paths, the above is on a Linux system.
If indeed the pkg-config call succeeds, something is wrong with your CMake config. You might then try to install the MacPorts version of cmake like this: sudo port install cmake
and use this one.
Okay, I had a look into the FindGTK2.cmake
module and I think I see the problem: It doesn't use pkg-config
, but does its own way of finding headers and libraries. The _GTK2_FIND_INCLUDE_DIR
function doesn't have /opt/local/include/
in its list of directories, which is where MacPorts is probably going to install the headers. Similarly, _GTK2_FIND_LIBRARY
doesn't list /opt/local/lib
.
This is a known bug, which was apparently fixed in CMake 2.8.3-rc1. I have my doubts, though, because they didn't update the library path. We'll see.
I looked at the documentation for find_path
and find_library
. It appears that the user can give hints about the search path by specifying -D
options to cmake
. Try something like:
cmake ../zzogl -DCMAKE_INCLUDE_PATH=/opt/local/include -DCMAKE_LIBRARY_PATH=/opt/local/lib
精彩评论