View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000607 | CMake | public | 2004-02-18 18:15 | 2004-04-22 17:08 | |||||
Reporter | Brendan | ||||||||
Assigned To | Bill Hoffman | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0000607: Possible bug in FindGTK.cmake | ||||||||
Description | I have recently tried compiling vxl/vgui using gtk but without glut on a> Fedora core 1 machine. This has caused a link error because libgdk is> apparently dependent on libXi, but libXi is not included in the> dependencies in FindGTK.cmake. Here's an example error:> c++ -fPIC basic01_display_image.o -o> /home/brendan/vxl-1.0.0/bin/core/vgui/examples/basic01_display_image> -rdynamic -L/home/brendan/vxl-1.0.0/bin/lib> -L/home/brendan/vxl-1.0-beta/gtkglarea-1.2.2/gtkgl/lib -L/usr/X11R6/lib> -lgtkgl -lgtk -lgdk -lgmodule -lglib -lGLU -lGL -lX11 -lXext -lvgui> -lvnl_algo -lnetlib -lvnl -lvil1 -lvil -ljpeg -ltiff -lpng -lzlib -lvgl> -lvpl -lvbl -lvul -lgtkgl -lgtk -lgdk -lgmodule -lglib -lQv -lvcl -lm> -lGLU -lGL -lX11 -lXext -lX11 -lXext> -Wl,-rpath,/home/brendan/vxl-1.0.0/bin/lib:/home/brendan/vxl-1.0-beta/gtkglarea-1.2.2/gtkgl/lib:/usr/X11R6/lib> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XGetDeviceMotionEvents'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XFreeDeviceList'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XQueryDeviceState'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XListInputDevices'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XFreeDeviceMotionEvents'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XFreeDeviceState'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XOpenDevice'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XSelectExtensionEvent'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XUngrabDevice'> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/../../../libgdk.so: undefined> reference to `XGrabDevice'> > I have attached a modified FindGTK.cmake (sourced from> $vxl/config/cmake/Modules/NewCMake/FindGTK.cmake) that solves the link> problem simply by adding libXi to the dependencies. Anyway, not sure if> this is a general problem or just my problem, but I thought I'd let you> know. Attached file: # # try to find GTK (and glib) and GTKGLArea # # GTK_INCLUDE_DIR - Directories to include to use GTK # GTK_LIBRARIES - Files to link against to use GTK # GTK_FOUND - If false, don't try to use GTK # don't even bother under WIN32 IF (UNIX) FIND_PATH( GTK_gtk_INCLUDE_DIR gtk/gtk.h /usr/include /usr/local/include /usr/openwin/share/include /usr/openwin/include /usr/X11R6/include /usr/include/X11 /usr/X11R6/include/gtk12 /usr/include/gtk-1.2 /usr/local/include/gtk-1.2 /opt/gnome/include ${GTK_gtk_INCLUDE_PATH} ) # Some Linux distributions (e.g. Red Hat) have glibconfig.h # and glib.h in different directories, so we need to look # for both. # - Atanas Georgiev <atanas@cs.columbia.edu> FIND_PATH( GTK_glibconfig_INCLUDE_DIR glibconfig.h /usr/include /usr/local/include /usr/openwin/share/include /usr/local/include/glib12 /usr/lib/glib/include /usr/local/lib/glib/include /opt/gnome/include /opt/gnome/lib/glib/include ${GTK_glibconfig_INCLUDE_PATH} ) FIND_PATH( GTK_glib_INCLUDE_DIR glib.h /usr/include /usr/local/include /usr/openwin/share/include /usr/include/gtk-1.2 /usr/local/include/glib12 /usr/lib/glib/include /usr/include/glib-1.2 /usr/local/include/glib-1.2 /opt/gnome/include /opt/gnome/include/glib-1.2 ${GTK_glib_INCLUDE_PATH} ) FIND_PATH( GTK_gtkgl_INCLUDE_DIR gtkgl/gtkglarea.h /usr/include /usr/local/include /usr/openwin/share/include /opt/gnome/include ${GTK_gtkgl_INCLUDE_PATH} ) FIND_LIBRARY( GTK_gtkgl_LIBRARY gtkgl /usr/lib /usr/local/lib /usr/openwin/lib /usr/X11R6/lib /opt/gnome/lib ) # # The 12 suffix is thanks to the FreeBSD ports collection # FIND_LIBRARY( GTK_gtk_LIBRARY NAMES gtk gtk12 PATHS /usr/lib /usr/local/lib /usr/openwin/lib /usr/X11R6/lib /opt/gnome/lib ) FIND_LIBRARY( GTK_gdk_LIBRARY NAMES gdk gdk12 PATHS /usr/lib /usr/local/lib /usr/openwin/lib /usr/X11R6/lib /opt/gnome/lib ) FIND_LIBRARY( GTK_gmodule_LIBRARY NAMES gmodule gmodule12 PATHS /usr/lib /usr/local/lib /usr/openwin/lib /usr/X11R6/lib /opt/gnome/lib ) FIND_LIBRARY( GTK_glib_LIBRARY NAMES glib glib12 PATHS /usr/lib /usr/local/lib /usr/openwin/lib /usr/X11R6/lib /opt/gnome/lib ) FIND_LIBRARY( GTK_Xi_LIBRARY NAMES Xi PATHS /usr/lib /usr/local/lib /usr/openwin/lib /usr/X11R6/lib /opt/gnome/lib ) IF(GTK_gtk_INCLUDE_DIR) IF(GTK_glibconfig_INCLUDE_DIR) IF(GTK_glib_INCLUDE_DIR) IF(GTK_gtkgl_INCLUDE_DIR) IF(GTK_gtk_LIBRARY) IF(GTK_glib_LIBRARY) IF(GTK_gtkgl_LIBRARY) # Assume that if gtk and glib were found, the other # supporting libraries have also been found. SET( GTK_FOUND "YES" ) SET( GTK_INCLUDE_DIR ${GTK_gtk_INCLUDE_DIR} ${GTK_glibconfig_INCLUDE_DIR} ${GTK_glib_INCLUDE_DIR} ${GTK_gtkgl_INCLUDE_DIR} ) SET( GTK_LIBRARIES ${GTK_gtkgl_LIBRARY} ${GTK_gtk_LIBRARY} ${GTK_gdk_LIBRARY} ${GTK_gmodule_LIBRARY} ${GTK_glib_LIBRARY} ${GTK_Xi_LIBRARY} ) ENDIF(GTK_gtkgl_LIBRARY) ENDIF(GTK_glib_LIBRARY) ENDIF(GTK_gtk_LIBRARY) ENDIF(GTK_gtkgl_INCLUDE_DIR) ENDIF(GTK_glib_INCLUDE_DIR) ENDIF(GTK_glibconfig_INCLUDE_DIR) ENDIF(GTK_gtk_INCLUDE_DIR) MARK_AS_ADVANCED( GTK_gtkgl_LIBRARY GTK_glib_LIBRARY GTK_gtk_LIBRARY GTK_Xi_LIBRARY GTK_gtkgl_INCLUDE_DIR GTK_glibconfig_INCLUDE_DIR GTK_glib_INCLUDE_DIR GTK_gtk_INCLUDE_DIR ) ENDIF (UNIX) | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0000948) Bill Hoffman (manager) 2004-04-22 17:08 |
OK, I checked in a version that I think has your change in it, give it a try. Next please use the Create Attachment button in the bug tracker. Thanks for the fix. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |