FindGTK.cmake 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. #.rst:
  4. # FindGTK
  5. # -------
  6. #
  7. # try to find GTK (and glib) and GTKGLArea
  8. #
  9. # ::
  10. #
  11. # GTK_INCLUDE_DIR - Directories to include to use GTK
  12. # GTK_LIBRARIES - Files to link against to use GTK
  13. # GTK_FOUND - GTK was found
  14. # GTK_GL_FOUND - GTK's GL features were found
  15. # don't even bother under WIN32
  16. if(UNIX)
  17. find_path( GTK_gtk_INCLUDE_PATH NAMES gtk/gtk.h
  18. PATH_SUFFIXES gtk-1.2 gtk12
  19. PATHS
  20. /usr/openwin/share/include
  21. /usr/openwin/include
  22. /opt/gnome/include
  23. )
  24. # Some Linux distributions (e.g. Red Hat) have glibconfig.h
  25. # and glib.h in different directories, so we need to look
  26. # for both.
  27. # - Atanas Georgiev <atanas@cs.columbia.edu>
  28. find_path( GTK_glibconfig_INCLUDE_PATH NAMES glibconfig.h
  29. PATH_SUFFIXES glib/include lib/glib/include include/glib12
  30. PATHS
  31. /usr/openwin/share/include
  32. /opt/gnome/include
  33. /opt/gnome/lib/glib/include
  34. )
  35. find_path( GTK_glib_INCLUDE_PATH NAMES glib.h
  36. PATH_SUFFIXES gtk-1.2 glib-1.2 glib12 glib/include lib/glib/include
  37. PATHS
  38. /usr/openwin/share/include
  39. /opt/gnome/include
  40. )
  41. find_path( GTK_gtkgl_INCLUDE_PATH NAMES gtkgl/gtkglarea.h
  42. PATHS /usr/openwin/share/include
  43. /opt/gnome/include
  44. )
  45. find_library( GTK_gtkgl_LIBRARY gtkgl
  46. /usr/openwin/lib
  47. /opt/gnome/lib
  48. )
  49. #
  50. # The 12 suffix is thanks to the FreeBSD ports collection
  51. #
  52. find_library( GTK_gtk_LIBRARY
  53. NAMES gtk gtk12
  54. PATHS /usr/openwin/lib
  55. /opt/gnome/lib
  56. )
  57. find_library( GTK_gdk_LIBRARY
  58. NAMES gdk gdk12
  59. PATHS /usr/openwin/lib
  60. /opt/gnome/lib
  61. )
  62. find_library( GTK_gmodule_LIBRARY
  63. NAMES gmodule gmodule12
  64. PATHS /usr/openwin/lib
  65. /opt/gnome/lib
  66. )
  67. find_library( GTK_glib_LIBRARY
  68. NAMES glib glib12
  69. PATHS /usr/openwin/lib
  70. /opt/gnome/lib
  71. )
  72. find_library( GTK_Xi_LIBRARY
  73. NAMES Xi
  74. PATHS /usr/openwin/lib
  75. /opt/gnome/lib
  76. )
  77. find_library( GTK_gthread_LIBRARY
  78. NAMES gthread gthread12
  79. PATHS /usr/openwin/lib
  80. /opt/gnome/lib
  81. )
  82. if(GTK_gtk_INCLUDE_PATH
  83. AND GTK_glibconfig_INCLUDE_PATH
  84. AND GTK_glib_INCLUDE_PATH
  85. AND GTK_gtk_LIBRARY
  86. AND GTK_glib_LIBRARY)
  87. # Assume that if gtk and glib were found, the other
  88. # supporting libraries have also been found.
  89. set( GTK_FOUND "YES" )
  90. set( GTK_INCLUDE_DIR ${GTK_gtk_INCLUDE_PATH}
  91. ${GTK_glibconfig_INCLUDE_PATH}
  92. ${GTK_glib_INCLUDE_PATH} )
  93. set( GTK_LIBRARIES ${GTK_gtk_LIBRARY}
  94. ${GTK_gdk_LIBRARY}
  95. ${GTK_glib_LIBRARY} )
  96. if(GTK_gmodule_LIBRARY)
  97. set(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_gmodule_LIBRARY})
  98. endif()
  99. if(GTK_gthread_LIBRARY)
  100. set(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_gthread_LIBRARY})
  101. endif()
  102. if(GTK_Xi_LIBRARY)
  103. set(GTK_LIBRARIES ${GTK_LIBRARIES} ${GTK_Xi_LIBRARY})
  104. endif()
  105. if(GTK_gtkgl_INCLUDE_PATH AND GTK_gtkgl_LIBRARY)
  106. set( GTK_GL_FOUND "YES" )
  107. set( GTK_INCLUDE_DIR ${GTK_INCLUDE_DIR}
  108. ${GTK_gtkgl_INCLUDE_PATH} )
  109. set( GTK_LIBRARIES ${GTK_gtkgl_LIBRARY} ${GTK_LIBRARIES} )
  110. mark_as_advanced(
  111. GTK_gtkgl_LIBRARY
  112. GTK_gtkgl_INCLUDE_PATH
  113. )
  114. endif()
  115. endif()
  116. mark_as_advanced(
  117. GTK_gdk_LIBRARY
  118. GTK_glib_INCLUDE_PATH
  119. GTK_glib_LIBRARY
  120. GTK_glibconfig_INCLUDE_PATH
  121. GTK_gmodule_LIBRARY
  122. GTK_gthread_LIBRARY
  123. GTK_Xi_LIBRARY
  124. GTK_gtk_INCLUDE_PATH
  125. GTK_gtk_LIBRARY
  126. GTK_gtkgl_INCLUDE_PATH
  127. GTK_gtkgl_LIBRARY
  128. )
  129. endif()