FindFLTK.cmake 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #
  2. # Find the native FLTK includes and library
  3. #
  4. # The following settings are defined
  5. # FLTK_FLUID_EXECUTABLE, where to find the Fluid tool
  6. # FLTK_WRAP_UI, This allows the FLTK_WRAP_UI command to work.
  7. # FLTK_INCLUDE_DIR, where to find include files
  8. # FLTK_LIBRARIES, list of fltk libraries
  9. # FLTK_VERSION_1.0.11 Use this Version
  10. # FLTK_VERSION_1.1 Use this Version
  11. # FLTK_FOUND, Don't use FLTK if false.
  12. # The following settings should not be used in general.
  13. # FLTK_BASE_LIBRARY = the full path to fltk.lib
  14. # FLTK_GL_LIBRARY = the full path to fltk_gl.lib
  15. # FLTK_FORMS_LIBRARY = the full path to fltk_forms.lib
  16. # FLTK_IMAGES_LIBRARY = the full path to fltk_images.lib
  17. OPTION(FLTK_VERSION_1.1 "Use FLTK version 1.1" 1)
  18. OPTION(FLTK_VERSION_1.0.11 "Use FLTK version 1.0.11" 0)
  19. # Exclusion between the two version
  20. IF(FLTK_VERSION_1.1)
  21. SET(FLTK_VERSION_1.0.11 0)
  22. ENDIF(FLTK_VERSION_1.1)
  23. FIND_PATH(FLTK_INCLUDE_DIR FL/Fl.h
  24. /usr/local/include
  25. /usr/include
  26. /usr/local/fltk
  27. /usr/X11R6/include
  28. )
  29. # Platform dependent libraries required by FLTK
  30. IF(WIN32)
  31. SET( FLTK_PLATFORM_DEPENDENT_LIBS wsock32 comctl32 )
  32. ENDIF(WIN32)
  33. IF(UNIX)
  34. SET( FLTK_PLATFORM_DEPENDENT_LIBS ${CMAKE_X_LIBS} -lm)
  35. ENDIF(UNIX)
  36. # Make sure that the FLTK include path has been set
  37. # So the FLTK_LIBRARY does not appear the first time
  38. IF(FLTK_INCLUDE_DIR)
  39. IF(FLTK_VERSION_1.0.11)
  40. FIND_LIBRARY(FLTK_BASE_LIBRARY NAMES fltk fltkd
  41. PATHS /usr/lib /usr/local/lib
  42. /usr/local/fltk/lib
  43. /usr/X11R6/lib ${FLTK_INCLUDE_DIR}/lib
  44. )
  45. ENDIF(FLTK_VERSION_1.0.11)
  46. IF(FLTK_VERSION_1.1)
  47. FIND_LIBRARY(FLTK_BASE_LIBRARY NAMES fltk fltkd
  48. PATHS /usr/lib /usr/local/lib /usr/local/fltk/lib
  49. /usr/X11R6/lib ${FLTK_INCLUDE_DIR}/lib
  50. )
  51. FIND_LIBRARY(FLTK_GL_LIBRARY NAMES fltkgl fltkgld fltk_gl
  52. PATHS /usr/lib /usr/local/lib /usr/local/fltk/lib
  53. /usr/X11R6/lib ${FLTK_INCLUDE_DIR}/lib
  54. )
  55. FIND_LIBRARY(FLTK_FORMS_LIBRARY NAMES fltkforms fltkformsd fltk_forms
  56. PATHS /usr/lib /usr/local/lib /usr/local/fltk/lib
  57. /usr/X11R6/lib ${FLTK_INCLUDE_DIR}/lib
  58. )
  59. FIND_LIBRARY(FLTK_IMAGES_LIBRARY NAMES fltkimages fltkimagesd fltk_images
  60. PATHS /usr/lib /usr/local/lib /usr/local/fltk/lib
  61. /usr/X11R6/lib ${FLTK_INCLUDE_DIR}/lib
  62. )
  63. ENDIF(FLTK_VERSION_1.1)
  64. SET( FLTK_LIBRARIES ${FLTK_BASE_LIBRARY} ${FLTK_GL_LIBRARY}
  65. ${FLTK_FORMS_LIBRARY} ${FLTK_IMAGES_LIBRARY} ${FLTK_PLATFORM_DEPENDENT_LIBS}
  66. )
  67. ENDIF(FLTK_INCLUDE_DIR)
  68. # Find Fluid
  69. FIND_FILE(FLTK_FLUID_EXECUTABLE fluid
  70. ${path} ${FLTK_INCLUDE_DIR}/fluid
  71. )
  72. # Enable the Wrap UI command
  73. IF (FLTK_FLUID_EXECUTABLE)
  74. SET ( FLTK_WRAP_UI 1 CACHE INTERNAL "Can we honour the FLTK_WRAP_UI command" )
  75. ENDIF (FLTK_FLUID_EXECUTABLE)
  76. #
  77. # Set FLTK_FOUND
  78. # This is the final flag that will be checked by
  79. # other code that requires FLTK for compile/run.
  80. #
  81. IF(FLTK_FLUID_EXECUTABLE)
  82. IF(FLTK_INCLUDE_DIR)
  83. IF(FLTK_LIBRARIES)
  84. # The fact that it is in the cache is deprecated.
  85. SET (FLTK_FOUND 1 CACHE INTERNAL "FLTK library, headers and Fluid are available")
  86. # The following deprecated settings are for compatibility with CMake 1.4
  87. SET (HAS_FLTK ${FLTK_FOUND})
  88. SET (FLTK_INCLUDE_PATH ${FLTK_INCLUDE_DIR})
  89. SET (FLTK_FLUID_EXE ${FLTK_FLUID_EXECUTABLE})
  90. SET (FLTK_LIBRARY ${FLTK_LIBRARIES})
  91. ENDIF(FLTK_LIBRARIES)
  92. ENDIF(FLTK_INCLUDE_DIR)
  93. ENDIF(FLTK_FLUID_EXECUTABLE)
  94. MARK_AS_ADVANCED(
  95. FLTK_VERSION_1.0.11
  96. FLTK_VERSION_1.1
  97. FLTK_INCLUDE_DIR
  98. FLTK_BASE_LIBRARY
  99. FLTK_GL_LIBRARY
  100. FLTK_FORMS_LIBRARY
  101. FLTK_IMAGES_LIBRARY
  102. )