# - Find the native FLTK includes and library # The following settings are defined # FLTK_FLUID_EXECUTABLE, where to find the Fluid tool # FLTK_WRAP_UI, This enables the FLTK_WRAP_UI command # FLTK_INCLUDE_DIR, where to find include files # FLTK_LIBRARIES, list of fltk libraries # FLTK_FOUND, Don't use FLTK if false. # The following settings should not be used in general. # FLTK_BASE_LIBRARY = the full path to fltk.lib # FLTK_GL_LIBRARY = the full path to fltk_gl.lib # FLTK_FORMS_LIBRARY = the full path to fltk_forms.lib # FLTK_IMAGES_LIBRARY = the full path to fltk_images.lib # Platform dependent libraries required by FLTK IF(WIN32) IF(NOT CYGWIN) IF(BORLAND) SET( FLTK_PLATFORM_DEPENDENT_LIBS import32 ) ELSE(BORLAND) SET( FLTK_PLATFORM_DEPENDENT_LIBS wsock32 comctl32 ) ENDIF(BORLAND) ENDIF(NOT CYGWIN) ENDIF(WIN32) IF(UNIX) INCLUDE(${CMAKE_ROOT}/Modules/FindX11.cmake) SET( FLTK_PLATFORM_DEPENDENT_LIBS ${X11_LIBRARIES} -lm) ENDIF(UNIX) IF(APPLE) SET( FLTK_PLATFORM_DEPENDENT_LIBS "-framework Carbon -framework Cocoa -framework ApplicationServices -lz") ENDIF(APPLE) IF(CYGWIN) SET( FLTK_PLATFORM_DEPENDENT_LIBS ole32 uuid comctl32 wsock32 supc++ -lm -lgdi32) ENDIF(CYGWIN) # If FLTK_INCLUDE_DIR is already defined we assigne its value to FLTK_DIR IF(FLTK_INCLUDE_DIR) SET(FLTK_DIR ${FLTK_INCLUDE_DIR}) ENDIF(FLTK_INCLUDE_DIR) # If FLTK has been built using CMake we try to find everything directly SET(FLTK_DIR_STRING "directory containing FLTKConfig.cmake. This is either the root of the build tree, or PREFIX/lib/fltk for an installation.") # Search only if the location is not already known. IF(NOT FLTK_DIR) # Get the system search path as a list. IF(UNIX) STRING(REGEX MATCHALL "[^:]+" FLTK_DIR_SEARCH1 "$ENV{PATH}") ELSE(UNIX) STRING(REGEX REPLACE "\\\\" "/" FLTK_DIR_SEARCH1 "$ENV{PATH}") ENDIF(UNIX) STRING(REGEX REPLACE "/;" ";" FLTK_DIR_SEARCH2 ${FLTK_DIR_SEARCH1}) # Construct a set of paths relative to the system search path. SET(FLTK_DIR_SEARCH "") FOREACH(dir ${FLTK_DIR_SEARCH2}) SET(FLTK_DIR_SEARCH ${FLTK_DIR_SEARCH} "${dir}/../lib/fltk") ENDFOREACH(dir) # # Look for an installation or build tree. # FIND_PATH(FLTK_DIR FLTKConfig.cmake # Look for an environment variable FLTK_DIR. $ENV{FLTK_DIR} # Look in places relative to the system executable search path. ${FLTK_DIR_SEARCH} # Look in standard UNIX install locations. /usr/local/lib/fltk /usr/lib/fltk /usr/local/include /usr/include /usr/local/fltk /usr/X11R6/include # Read from the CMakeSetup registry entries. It is likely that # FLTK will have been recently built. [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild1] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild2] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild3] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild4] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild5] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild6] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild7] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild8] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild9] [HKEY_CURRENT_USER\\Software\\Kitware\\CMakeSetup\\Settings\\StartPath;WhereBuild10] # Help the user find it if we cannot. DOC "The ${FLTK_DIR_STRING}" ) ENDIF(NOT FLTK_DIR) # If FLTK was found, load the configuration file to get the rest of the # settings. IF(FLTK_DIR) # Check if FLTK was built using CMake IF(EXISTS ${FLTK_DIR}/FLTKConfig.cmake) SET(FLTK_BUILT_WITH_CMAKE 1) ENDIF(EXISTS ${FLTK_DIR}/FLTKConfig.cmake) IF(FLTK_BUILT_WITH_CMAKE) SET(FLTK_FOUND 1) INCLUDE(${FLTK_DIR}/FLTKConfig.cmake) # Fluid IF(FLUID_COMMAND) SET(FLTK_FLUID_EXECUTABLE ${FLUID_COMMAND} CACHE FILEPATH "Fluid executable") ELSE(FLUID_COMMAND) FIND_PROGRAM(FLTK_FLUID_EXECUTABLE fluid PATHS ${FLTK_EXECUTABLE_DIRS} ${FLTK_EXECUTABLE_DIRS}/RelWithDebInfo ${FLTK_EXECUTABLE_DIRS}/Debug ${FLTK_EXECUTABLE_DIRS}/Release NO_SYSTEM_PATH) ENDIF(FLUID_COMMAND) # MARK_AS_ADVANCED(FLTK_FLUID_EXECUTABLE) SET(FLTK_INCLUDE_DIR ${FLTK_DIR}) LINK_DIRECTORIES(${FLTK_LIBRARY_DIRS}) SET(FLTK_BASE_LIBRARY fltk) SET(FLTK_GL_LIBRARY fltk_gl) SET(FLTK_FORMS_LIBRARY fltk_forms) SET(FLTK_IMAGES_LIBRARY fltk_images) # Add the extra libraries LOAD_CACHE(${FLTK_DIR} READ_WITH_PREFIX FL FLTK_USE_SYSTEM_JPEG FL FLTK_USE_SYSTEM_PNG FL FLTK_USE_SYSTEM_ZLIB ) SET(FLTK_IMAGES_LIBS "") IF(FLFLTK_USE_SYSTEM_JPEG) SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_jpeg) ENDIF(FLFLTK_USE_SYSTEM_JPEG) IF(FLFLTK_USE_SYSTEM_PNG) SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_png) ENDIF(FLFLTK_USE_SYSTEM_PNG) IF(FLFLTK_USE_SYSTEM_ZLIB) SET(FLTK_IMAGES_LIBS ${FLTK_IMAGES_LIBS} fltk_zlib) ENDIF(FLFLTK_USE_SYSTEM_ZLIB) SET(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL "Extra libraries for fltk_images library.") ELSE(FLTK_BUILT_WITH_CMAKE) # if FLTK was not built using CMake # Find fluid executable. FIND_PROGRAM(FLTK_FLUID_EXECUTABLE fluid ${FLTK_INCLUDE_DIR}/fluid) # Use location of fluid to help find everything else. SET(FLTK_INCLUDE_SEARCH_PATH "") SET(FLTK_LIBRARY_SEARCH_PATH "") IF(FLTK_FLUID_EXECUTABLE) GET_FILENAME_COMPONENT(FLTK_BIN_DIR "${FLTK_FLUID_EXECUTABLE}" PATH) SET(FLTK_INCLUDE_SEARCH_PATH ${FLTK_INCLUDE_SEARCH_PATH} ${FLTK_BIN_DIR}/../include ${FLTK_BIN_DIR}/..) SET(FLTK_LIBRARY_SEARCH_PATH ${FLTK_LIBRARY_SEARCH_PATH} ${FLTK_BIN_DIR}/../lib) SET(FLTK_WRAP_UI 1) ENDIF(FLTK_FLUID_EXECUTABLE) SET(FLTK_INCLUDE_SEARCH_PATH ${FLTK_INCLUDE_SEARCH_PATH} /usr/local/include /usr/include /usr/local/fltk /usr/X11R6/include ) FIND_PATH(FLTK_INCLUDE_DIR FL/Fl.h ${FLTK_INCLUDE_SEARCH_PATH}) SET(FLTK_LIBRARY_SEARCH_PATH ${FLTK_LIBRARY_SEARCH_PATH} /usr/lib /usr/local/lib /usr/local/fltk/lib /usr/X11R6/lib ${FLTK_INCLUDE_DIR}/lib ) FIND_LIBRARY(FLTK_BASE_LIBRARY NAMES fltk fltkd PATHS ${FLTK_LIBRARY_SEARCH_PATH}) FIND_LIBRARY(FLTK_GL_LIBRARY NAMES fltkgl fltkgld fltk_gl PATHS ${FLTK_LIBRARY_SEARCH_PATH}) FIND_LIBRARY(FLTK_FORMS_LIBRARY NAMES fltkforms fltkformsd fltk_forms PATHS ${FLTK_LIBRARY_SEARCH_PATH}) FIND_LIBRARY(FLTK_IMAGES_LIBRARY NAMES fltkimages fltkimagesd fltk_images PATHS ${FLTK_LIBRARY_SEARCH_PATH}) # Find the extra libraries needed for the fltk_images library. IF(UNIX) FIND_PROGRAM(FLTK_CONFIG_SCRIPT fltk-config PATHS ${FLTK_BIN_DIR}) IF(FLTK_CONFIG_SCRIPT) EXEC_PROGRAM(${FLTK_CONFIG_SCRIPT} ARGS --use-images --ldflags OUTPUT_VARIABLE FLTK_IMAGES_LDFLAGS) SET(FLTK_LIBS_EXTRACT_REGEX ".*-lfltk_images (.*) -lfltk.*") IF("${FLTK_IMAGES_LDFLAGS}" MATCHES "${FLTK_LIBS_EXTRACT_REGEX}") STRING(REGEX REPLACE "${FLTK_LIBS_EXTRACT_REGEX}" "\\1" FLTK_IMAGES_LIBS "${FLTK_IMAGES_LDFLAGS}") STRING(REGEX REPLACE " +" ";" FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}") # The EXEC_PROGRAM will not be inherited into subdirectories from # the file that originally included this module. Save the answer. SET(FLTK_IMAGES_LIBS "${FLTK_IMAGES_LIBS}" CACHE INTERNAL "Extra libraries for fltk_images library.") ENDIF("${FLTK_IMAGES_LDFLAGS}" MATCHES "${FLTK_LIBS_EXTRACT_REGEX}") ENDIF(FLTK_CONFIG_SCRIPT) ENDIF(UNIX) ENDIF(FLTK_BUILT_WITH_CMAKE) ENDIF(FLTK_DIR) SET(FLTK_FOUND 1) FOREACH(var FLTK_FLUID_EXECUTABLE FLTK_INCLUDE_DIR FLTK_BASE_LIBRARY FLTK_GL_LIBRARY FLTK_FORMS_LIBRARY FLTK_IMAGES_LIBRARY) IF(NOT ${var}) SET(FLTK_FOUND 0) ENDIF(NOT ${var}) ENDFOREACH(var) IF(FLTK_FOUND) SET(FLTK_LIBRARIES ${FLTK_IMAGES_LIBRARY} ${FLTK_IMAGES_LIBS} ${FLTK_BASE_LIBRARY} ${FLTK_GL_LIBRARY} ${FLTK_FORMS_LIBRARY} ) IF(APPLE) SET(FLTK_LIBRARIES ${FLTK_PLATFORM_DEPENDENT_LIBS} ${FLTK_LIBRARIES}) ELSE(APPLE) SET(FLTK_LIBRARIES ${FLTK_LIBRARIES} ${FLTK_PLATFORM_DEPENDENT_LIBS}) ENDIF(APPLE) # The following deprecated settings are for compatibility with CMake 1.4 SET (HAS_FLTK ${FLTK_FOUND}) SET (FLTK_INCLUDE_PATH ${FLTK_INCLUDE_DIR}) SET (FLTK_FLUID_EXE ${FLTK_FLUID_EXECUTABLE}) SET (FLTK_LIBRARY ${FLTK_LIBRARIES}) ENDIF(FLTK_FOUND)