| # - Find the native FLTK2 includes and library |
| # The following settings are defined |
| # FLTK2_FLUID_EXECUTABLE, where to find the Fluid tool |
| # FLTK2_WRAP_UI, This enables the FLTK2_WRAP_UI command |
| # FLTK2_INCLUDE_DIR, where to find include files |
| # FLTK2_LIBRARIES, list of fltk2 libraries |
| # FLTK2_FOUND, Don't use FLTK2 if false. |
| # The following settings should not be used in general. |
| # FLTK2_BASE_LIBRARY = the full path to fltk2.lib |
| # FLTK2_GL_LIBRARY = the full path to fltk2_gl.lib |
| # FLTK2_IMAGES_LIBRARY = the full path to fltk2_images.lib |
| |
| #============================================================================= |
| # Copyright 2007-2009 Kitware, Inc. |
| # |
| # Distributed under the OSI-approved BSD License (the "License"); |
| # see accompanying file Copyright.txt for details. |
| # |
| # This software is distributed WITHOUT ANY WARRANTY; without even the |
| # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| # See the License for more information. |
| #============================================================================= |
| # (To distribute this file outside of CMake, substitute the full |
| # License text for the above reference.) |
| |
| SET (FLTK2_DIR $ENV{FLTK2_DIR} ) |
| |
| # Platform dependent libraries required by FLTK2 |
| IF(WIN32) |
| IF(NOT CYGWIN) |
| IF(BORLAND) |
| SET( FLTK2_PLATFORM_DEPENDENT_LIBS import32 ) |
| ELSE(BORLAND) |
| SET( FLTK2_PLATFORM_DEPENDENT_LIBS wsock32 comctl32 ) |
| ENDIF(BORLAND) |
| ENDIF(NOT CYGWIN) |
| ENDIF(WIN32) |
| |
| IF(UNIX) |
| INCLUDE(${CMAKE_ROOT}/Modules/FindX11.cmake) |
| SET( FLTK2_PLATFORM_DEPENDENT_LIBS ${X11_LIBRARIES} -lm) |
| ENDIF(UNIX) |
| |
| IF(APPLE) |
| SET( FLTK2_PLATFORM_DEPENDENT_LIBS "-framework Carbon -framework Cocoa -framework ApplicationServices -lz") |
| ENDIF(APPLE) |
| |
| # If FLTK2_INCLUDE_DIR is already defined we assigne its value to FLTK2_DIR |
| IF(FLTK2_INCLUDE_DIR) |
| SET(FLTK2_DIR ${FLTK2_INCLUDE_DIR}) |
| ELSE(FLTK2_INCLUDE_DIR) |
| SET(FLTK2_INCLUDE_DIR ${FLTK2_DIR}) |
| ENDIF(FLTK2_INCLUDE_DIR) |
| |
| |
| # If FLTK2 has been built using CMake we try to find everything directly |
| SET(FLTK2_DIR_STRING "directory containing FLTK2Config.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 FLTK2_DIR) |
| # Get the system search path as a list. |
| IF(UNIX) |
| STRING(REGEX MATCHALL "[^:]+" FLTK2_DIR_SEARCH1 "$ENV{PATH}") |
| ELSE(UNIX) |
| STRING(REGEX REPLACE "\\\\" "/" FLTK2_DIR_SEARCH1 "$ENV{PATH}") |
| ENDIF(UNIX) |
| STRING(REGEX REPLACE "/;" ";" FLTK2_DIR_SEARCH2 ${FLTK2_DIR_SEARCH1}) |
| |
| # Construct a set of paths relative to the system search path. |
| SET(FLTK2_DIR_SEARCH "") |
| FOREACH(dir ${FLTK2_DIR_SEARCH2}) |
| SET(FLTK2_DIR_SEARCH ${FLTK2_DIR_SEARCH} "${dir}/../lib/fltk") |
| ENDFOREACH(dir) |
| |
| # |
| # Look for an installation or build tree. |
| # |
| FIND_PATH(FLTK2_DIR FLTK2Config.cmake |
| # Look for an environment variable FLTK2_DIR. |
| $ENV{FLTK2_DIR} |
| |
| # Look in places relative to the system executable search path. |
| ${FLTK2_DIR_SEARCH} |
| |
| # Look in standard UNIX install locations. |
| /usr/local/lib/fltk2 |
| /usr/lib/fltk2 |
| /usr/local/include |
| /usr/include |
| /usr/local/fltk2 |
| /usr/X11R6/include |
| |
| # Read from the CMakeSetup registry entries. It is likely that |
| # FLTK2 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 ${FLTK2_DIR_STRING}" |
| ) |
| |
| IF(NOT FLTK2_DIR) |
| FIND_PATH(FLTK2_DIR fltk/run.h ${FLTK2_INCLUDE_SEARCH_PATH}) |
| ENDIF(NOT FLTK2_DIR) |
| |
| ENDIF(NOT FLTK2_DIR) |
| |
| |
| # If FLTK2 was found, load the configuration file to get the rest of the |
| # settings. |
| IF(FLTK2_DIR) |
| |
| # Check if FLTK2 was built using CMake |
| IF(EXISTS ${FLTK2_DIR}/FLTK2Config.cmake) |
| SET(FLTK2_BUILT_WITH_CMAKE 1) |
| ENDIF(EXISTS ${FLTK2_DIR}/FLTK2Config.cmake) |
| |
| IF(FLTK2_BUILT_WITH_CMAKE) |
| SET(FLTK2_FOUND 1) |
| INCLUDE(${FLTK2_DIR}/FLTK2Config.cmake) |
| |
| # Fluid |
| IF(FLUID_COMMAND) |
| SET(FLTK2_FLUID_EXECUTABLE ${FLUID_COMMAND} CACHE FILEPATH "Fluid executable") |
| ELSE(FLUID_COMMAND) |
| FIND_PROGRAM(FLTK2_FLUID_EXECUTABLE fluid2 PATHS |
| ${FLTK2_EXECUTABLE_DIRS} |
| ${FLTK2_EXECUTABLE_DIRS}/RelWithDebInfo |
| ${FLTK2_EXECUTABLE_DIRS}/Debug |
| ${FLTK2_EXECUTABLE_DIRS}/Release |
| NO_SYSTEM_PATH) |
| ENDIF(FLUID_COMMAND) |
| |
| MARK_AS_ADVANCED(FLTK2_FLUID_EXECUTABLE) |
| SET( FLTK_FLUID_EXECUTABLE ${FLTK2_FLUID_EXECUTABLE} ) |
| |
| |
| |
| |
| SET(FLTK2_INCLUDE_DIR ${FLTK2_DIR}) |
| LINK_DIRECTORIES(${FLTK2_LIBRARY_DIRS}) |
| |
| SET(FLTK2_BASE_LIBRARY fltk2) |
| SET(FLTK2_GL_LIBRARY fltk2_gl) |
| SET(FLTK2_IMAGES_LIBRARY fltk2_images) |
| |
| # Add the extra libraries |
| LOAD_CACHE(${FLTK2_DIR} |
| READ_WITH_PREFIX |
| FL FLTK2_USE_SYSTEM_JPEG |
| FL FLTK2_USE_SYSTEM_PNG |
| FL FLTK2_USE_SYSTEM_ZLIB |
| ) |
| |
| SET(FLTK2_IMAGES_LIBS "") |
| IF(FLFLTK2_USE_SYSTEM_JPEG) |
| SET(FLTK2_IMAGES_LIBS ${FLTK2_IMAGES_LIBS} fltk2_jpeg) |
| ENDIF(FLFLTK2_USE_SYSTEM_JPEG) |
| IF(FLFLTK2_USE_SYSTEM_PNG) |
| SET(FLTK2_IMAGES_LIBS ${FLTK2_IMAGES_LIBS} fltk2_png) |
| ENDIF(FLFLTK2_USE_SYSTEM_PNG) |
| IF(FLFLTK2_USE_SYSTEM_ZLIB) |
| SET(FLTK2_IMAGES_LIBS ${FLTK2_IMAGES_LIBS} fltk2_zlib) |
| ENDIF(FLFLTK2_USE_SYSTEM_ZLIB) |
| SET(FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}" CACHE INTERNAL |
| "Extra libraries for fltk2_images library.") |
| |
| ELSE(FLTK2_BUILT_WITH_CMAKE) |
| |
| # if FLTK2 was not built using CMake |
| # Find fluid executable. |
| FIND_PROGRAM(FLTK2_FLUID_EXECUTABLE fluid2 ${FLTK2_INCLUDE_DIR}/fluid) |
| |
| # Use location of fluid to help find everything else. |
| SET(FLTK2_INCLUDE_SEARCH_PATH "") |
| SET(FLTK2_LIBRARY_SEARCH_PATH "") |
| IF(FLTK2_FLUID_EXECUTABLE) |
| SET( FLTK_FLUID_EXECUTABLE ${FLTK2_FLUID_EXECUTABLE} ) |
| GET_FILENAME_COMPONENT(FLTK2_BIN_DIR "${FLTK2_FLUID_EXECUTABLE}" PATH) |
| SET(FLTK2_INCLUDE_SEARCH_PATH ${FLTK2_INCLUDE_SEARCH_PATH} |
| ${FLTK2_BIN_DIR}/../include ${FLTK2_BIN_DIR}/..) |
| SET(FLTK2_LIBRARY_SEARCH_PATH ${FLTK2_LIBRARY_SEARCH_PATH} |
| ${FLTK2_BIN_DIR}/../lib) |
| SET(FLTK2_WRAP_UI 1) |
| ENDIF(FLTK2_FLUID_EXECUTABLE) |
| |
| SET(FLTK2_INCLUDE_SEARCH_PATH ${FLTK2_INCLUDE_SEARCH_PATH} |
| /usr/local/include |
| /usr/include |
| /usr/local/fltk2 |
| /usr/X11R6/include |
| ) |
| |
| FIND_PATH(FLTK2_INCLUDE_DIR fltk/run.h ${FLTK2_INCLUDE_SEARCH_PATH}) |
| |
| SET(FLTK2_LIBRARY_SEARCH_PATH ${FLTK2_LIBRARY_SEARCH_PATH} |
| /usr/lib |
| /usr/local/lib |
| /usr/local/fltk2/lib |
| /usr/X11R6/lib |
| ${FLTK2_INCLUDE_DIR}/lib |
| ) |
| |
| FIND_LIBRARY(FLTK2_BASE_LIBRARY NAMES fltk2 |
| PATHS ${FLTK2_LIBRARY_SEARCH_PATH}) |
| FIND_LIBRARY(FLTK2_GL_LIBRARY NAMES fltk2_gl |
| PATHS ${FLTK2_LIBRARY_SEARCH_PATH}) |
| FIND_LIBRARY(FLTK2_IMAGES_LIBRARY NAMES fltk2_images |
| PATHS ${FLTK2_LIBRARY_SEARCH_PATH}) |
| |
| # Find the extra libraries needed for the fltk_images library. |
| IF(UNIX) |
| FIND_PROGRAM(FLTK2_CONFIG_SCRIPT fltk2-config PATHS ${FLTK2_BIN_DIR}) |
| IF(FLTK2_CONFIG_SCRIPT) |
| EXEC_PROGRAM(${FLTK2_CONFIG_SCRIPT} ARGS --use-images --ldflags |
| OUTPUT_VARIABLE FLTK2_IMAGES_LDFLAGS) |
| SET(FLTK2_LIBS_EXTRACT_REGEX ".*-lfltk2_images (.*) -lfltk2.*") |
| IF("${FLTK2_IMAGES_LDFLAGS}" MATCHES "${FLTK2_LIBS_EXTRACT_REGEX}") |
| STRING(REGEX REPLACE "${FLTK2_LIBS_EXTRACT_REGEX}" "\\1" |
| FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LDFLAGS}") |
| STRING(REGEX REPLACE " +" ";" FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}") |
| # The EXEC_PROGRAM will not be inherited into subdirectories from |
| # the file that originally included this module. Save the answer. |
| SET(FLTK2_IMAGES_LIBS "${FLTK2_IMAGES_LIBS}" CACHE INTERNAL |
| "Extra libraries for fltk_images library.") |
| ENDIF("${FLTK2_IMAGES_LDFLAGS}" MATCHES "${FLTK2_LIBS_EXTRACT_REGEX}") |
| ENDIF(FLTK2_CONFIG_SCRIPT) |
| ENDIF(UNIX) |
| |
| ENDIF(FLTK2_BUILT_WITH_CMAKE) |
| ENDIF(FLTK2_DIR) |
| |
| |
| SET(FLTK2_FOUND 1) |
| FOREACH(var FLTK2_FLUID_EXECUTABLE FLTK2_INCLUDE_DIR |
| FLTK2_BASE_LIBRARY FLTK2_GL_LIBRARY |
| FLTK2_IMAGES_LIBRARY) |
| IF(NOT ${var}) |
| MESSAGE( STATUS "${var} not found" ) |
| SET(FLTK2_FOUND 0) |
| ENDIF(NOT ${var}) |
| ENDFOREACH(var) |
| |
| |
| IF(FLTK2_FOUND) |
| SET(FLTK2_LIBRARIES ${FLTK2_IMAGES_LIBRARY} ${FLTK2_IMAGES_LIBS} ${FLTK2_BASE_LIBRARY} ${FLTK2_GL_LIBRARY} ) |
| IF(APPLE) |
| SET(FLTK2_LIBRARIES ${FLTK2_PLATFORM_DEPENDENT_LIBS} ${FLTK2_LIBRARIES}) |
| ELSE(APPLE) |
| SET(FLTK2_LIBRARIES ${FLTK2_LIBRARIES} ${FLTK2_PLATFORM_DEPENDENT_LIBS}) |
| ENDIF(APPLE) |
| |
| # The following deprecated settings are for compatibility with CMake 1.4 |
| SET (HAS_FLTK2 ${FLTK2_FOUND}) |
| SET (FLTK2_INCLUDE_PATH ${FLTK2_INCLUDE_DIR}) |
| SET (FLTK2_FLUID_EXE ${FLTK2_FLUID_EXECUTABLE}) |
| SET (FLTK2_LIBRARY ${FLTK2_LIBRARIES}) |
| ELSE(FLTK2_FOUND) |
| # make FIND_PACKAGE friendly |
| IF(NOT FLTK2_FIND_QUIETLY) |
| IF(FLTK2_FIND_REQUIRED) |
| MESSAGE(FATAL_ERROR |
| "FLTK2 required, please specify its location with FLTK2_DIR.") |
| ELSE(FLTK2_FIND_REQUIRED) |
| MESSAGE(STATUS "FLTK2 was not found.") |
| ENDIF(FLTK2_FIND_REQUIRED) |
| ENDIF(NOT FLTK2_FIND_QUIETLY) |
| ENDIF(FLTK2_FOUND) |
| |