View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000996CMakeModulespublic2004-07-21 17:262008-10-01 15:58
ReporterBill Hoffman 
Assigned ToBill Hoffman 
PrioritynormalSeverityfeatureReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000996: FLTK2 support
DescriptionBelow please find possible modifications to FindFLTK.cmake supporting FLTK2. Additionally note that FLTK headers, libraries, and executables are first searched under FLTK_INCLUDE_DIR rather than system directories. This allows use of a non-installed FLTK build even when an installed build exists on the system.

FindFLTK.cmake:
#
# Find the native FLTK includes and library
#
# The following settings are defined
# FLTK_FLUID_EXECUTABLE, where to find the Fluid tool
# FLTK_INCLUDE_DIR, where to find include files
# FLTK_LIBRARIES, list of fltk libraries
# FLTK_VERSION_1.0.11 Use this Version
# FLTK_VERSION_1.1 Use this Version
# 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

# Look for FLTK2 headers

FIND_PATH (FLTK_INCLUDE_DIR fltk/FL_VERSION.h
  /usr/local/include
  /usr/include
  /usr/local/fltk
  /usr/X11R6/include
)

IF (FLTK_INCLUDE_DIR)
  OPTION (FLTK_VERSION_2.0 "Use FLTK version 2.0" 1)
  OPTION (FLTK_VERSION_1.1 "Use FLTK version 1.1" 0)
ELSE (FLTK_INCLUDE_DIR)
  OPTION (FLTK_VERSION_2.0 "Use FLTK version 2.0" 0)
  OPTION (FLTK_VERSION_1.1 "Use FLTK version 1.1" 1)
ENDIF (FLTK_INCLUDE_DIR)

OPTION (FLTK_VERSION_1.0.11 "Use FLTK version 1.0.11" 0)

# Exclusion between the three versions

IF (FLTK_VERSION_2.0)
  SET (FLTK_VERSION_1.1 0)
  SET (FLTK_VERSION_1.0.11 0)
ELSE (FLTK_VERSION_2.0)
  IF (FLTK_VERSION_1.1)
    SET (FLTK_VERSION_1.0.11 0)
  ENDIF (FLTK_VERSION_1.1)

  # look for both Fl.h and Fl.H
  FIND_PATH (FLTK_INCLUDE_DIR FL/Fl.h
    /usr/local/include
    /usr/include
    /usr/local/fltk
    /usr/X11R6/include
  )

  FIND_PATH (FLTK_INCLUDE_DIR FL/Fl.H
    /usr/local/include
    /usr/include
    /usr/local/fltk
    /usr/X11R6/include
  )
ENDIF (FLTK_VERSION_2.0)

# 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)

# Make sure that the FLTK include path has been set
# So the FLTK_LIBRARY does not appear the first time
IF (FLTK_INCLUDE_DIR)

  IF (FLTK_VERSION_1.0.11)
    FIND_LIBRARY (FLTK_BASE_LIBRARY NAMES fltk fltkd
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/lib/fltk
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
  ENDIF (FLTK_VERSION_1.0.11)

  IF (FLTK_VERSION_1.1)
    FIND_LIBRARY (FLTK_BASE_LIBRARY NAMES fltk fltkd
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
    FIND_LIBRARY (FLTK_GL_LIBRARY NAMES fltkgl fltkgld fltk_gl
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
    FIND_LIBRARY (FLTK_FORMS_LIBRARY NAMES fltkforms fltkformsd fltk_forms
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
    FIND_LIBRARY (FLTK_IMAGES_LIBRARY NAMES fltkimages fltkimagesd fltk_images
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
  ENDIF (FLTK_VERSION_1.1)

  IF (FLTK_VERSION_2.0)
    FIND_LIBRARY (FLTK_BASE_LIBRARY NAMES fltk fltkd
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
    FIND_LIBRARY (FLTK_GL_LIBRARY NAMES fltkgl fltkgld fltk_gl
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
    FIND_LIBRARY (FLTK_IMAGES_LIBRARY NAMES fltkimages fltkimagesd fltk_images
      PATHS ${FLTK_INCLUDE_DIR}/lib
      /usr/lib
      /usr/local/lib
      /usr/local/fltk/lib
      /usr/X11R6/lib
    )
  ENDIF (FLTK_VERSION_2.0)

  SET (FLTK_LIBRARIES
    ${FLTK_GL_LIBRARY}
    ${FLTK_FORMS_LIBRARY}
    ${FLTK_IMAGES_LIBRARY}
    ${FLTK_BASE_LIBRARY}
    ${FLTK_PLATFORM_DEPENDENT_LIBS}
  )
ENDIF(FLTK_INCLUDE_DIR)
# Find Fluid
FIND_PROGRAM (FLTK_FLUID_EXECUTABLE fluid
  ${FLTK_INCLUDE_DIR}/fluid ${path}
)

#
# Set FLTK_FOUND
# This is the final flag that will be checked by
# other code that requires FLTK for compile/run.
#

IF(FLTK_FLUID_EXECUTABLE)
  IF(FLTK_INCLUDE_DIR)
    IF(FLTK_LIBRARIES)

      # The fact that it is in the cache is deprecated.
      SET (FLTK_FOUND 1 CACHE INTERNAL "FLTK library, headers and Fluid are available")

      # 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_LIBRARIES)
  ENDIF(FLTK_INCLUDE_DIR)
ENDIF(FLTK_FLUID_EXECUTABLE)

MARK_AS_ADVANCED(
  FLTK_VERSION_1.0.11
  FLTK_VERSION_1.1
  FLTK_VERSION_2.0
)
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0002693)
Bill Hoffman (manager)
2005-07-15 16:52

Can you update this to work with the most recent fltk in cmake cvs?
(0005182)
Bill Hoffman (manager)
2006-10-04 15:13

This should be a separate module. FindFLTK2.cmake.
(0013675)
Bill Hoffman (manager)
2008-10-01 15:57

Are you still interested in this bug?

 Issue History
Date Modified Username Field Change
2007-08-28 13:52 Zack Galbreath Project KWStyle => CMake
2007-08-28 13:53 Zack Galbreath Reporter Sean McInerney => Bill Hoffman
2007-08-28 13:53 Zack Galbreath Assigned To David Gobbi =>
2007-08-28 13:53 Zack Galbreath Severity minor => feature
2007-08-28 13:53 Zack Galbreath Status acknowledged => assigned
2007-08-28 13:53 Zack Galbreath Resolution won't fix => open
2007-08-28 13:53 Zack Galbreath Category CTest => Modules
2007-08-28 13:53 Zack Galbreath Summary Goodsite => FLTK2 support
2007-08-28 13:53 Zack Galbreath Note Deleted: 0008282
2008-02-15 10:46 Bill Hoffman Assigned To => Bill Hoffman
2008-10-01 15:57 Bill Hoffman Note Added: 0013675
2008-10-01 15:58 Bill Hoffman Status assigned => closed
2008-10-01 15:58 Bill Hoffman Resolution open => fixed


Copyright © 2000 - 2018 MantisBT Team