summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2004-10-18 20:29:58 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2004-10-18 20:29:58 +0000
commitca005c406787c5ccf5c0cf0bc5275ea7a6ed1ba7 (patch)
tree6fd57f91d74a0255ec28d5026074a1f0b8daf4f1 /CMakeLists.txt
parentbf910884ccd3b3fb0655799feee83adcbc35a3a9 (diff)
Documentation updates (STR #568)
More CMake updates (STR #499) The Watcom C++ compiler needed a small change (STR #567) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3869 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt542
1 files changed, 311 insertions, 231 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 496e4c839..1aab2209b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,231 +1,311 @@
-# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
-# Written by Andy Cedilnik and Julien Jomier
-
-PROJECT(FLTK)
-
-SET(EXECUTABLE_OUTPUT_PATH ${FLTK_BINARY_DIR}/bin CACHE INTERNAL
- "Where to put the executables for FLTK"
-)
-SET(LIBRARY_OUTPUT_PATH "${FLTK_BINARY_DIR}/lib" CACHE INTERNAL
- "Where to put the libraries for FLTK"
-)
-
-#-----------------------------------------------------------------------------
-# Test for some required system information.
-INCLUDE (${CMAKE_ROOT}/Modules/FindThreads.cmake)
-SET (CMAKE_USE_PTHREADS "${CMAKE_USE_PTHREADS_INIT}" CACHE BOOL "Use the pthreads library.")
-
-
-SET(FLTK_DATADIR "${CMAKE_INSTALL_PREFIX}/share/FLTK")
-SET(FLTK_DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/FLTK")
-
-CONFIGURE_FILE(${FLTK_SOURCE_DIR}/configh.cmake.in
- ${FLTK_BINARY_DIR}/config.h)
-
-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)
- ADD_DEFINITIONS(-DWIN32)
- SET( FLTK_PLATFORM_DEPENDENT_LIBS ole32 uuid comctl32 wsock32 supc++ -lm -lgdi32)
-ENDIF(CYGWIN)
-
-
-INCLUDE_DIRECTORIES(
- ${FLTK_BINARY_DIR}
- ${FLTK_SOURCE_DIR}
- )
-
-INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
-# Check if header file exists and add it to the list.
-MACRO(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
- CHECK_INCLUDE_FILES("${PROJECT_INCLUDES};${FILE}" ${VARIABLE})
- IF(${VARIABLE})
- SET(PROJECT_INCLUDES ${PROJECT_INCLUDES} ${FILE})
- ENDIF(${VARIABLE})
-ENDMACRO(CHECK_INCLUDE_FILE_CONCAT)
-CHECK_INCLUDE_FILE_CONCAT("GL/glu.h" HAVE_GL_GLU_H)
-CHECK_INCLUDE_FILE_CONCAT("dirent.h" HAVE_DIRENT_H)
-CHECK_INCLUDE_FILE_CONCAT("stdio.h" HAVE_STDIO_H)
-CHECK_INCLUDE_FILE_CONCAT("strings.h" HAVE_STRINGS_H)
-CHECK_INCLUDE_FILE_CONCAT("sys/dir.h" HAVE_SYS_DIR_H)
-CHECK_INCLUDE_FILE_CONCAT("sys/ndir.h" HAVE_SYS_NDIR_H)
-CHECK_INCLUDE_FILE_CONCAT("sys/select.h" HAVE_SYS_SELECT_H)
-CHECK_INCLUDE_FILE_CONCAT("sys/stdtypes.h" HAVE_SYS_STDTYPES_H)
-CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
-
-INCLUDE(${CMAKE_ROOT}/Modules/FindZLIB.cmake)
-INCLUDE(${CMAKE_ROOT}/Modules/FindPNG.cmake)
-INCLUDE(${CMAKE_ROOT}/Modules/FindJPEG.cmake)
-
-INCLUDE(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
-INCLUDE(${FLTK_SOURCE_DIR}/CMake/CheckFunctionWithHeaderExists.cmake)
-
-CHECK_FUNCTIONWITHHEADER_EXISTS("int strcasecmp()" "${PROJECT_INCLUDES}" HAVE_STRCASECMP)
-
-CHECK_SYMBOL_EXISTS(strlcat "${PROJECT_INCLUDES}" HAVE_STRLCAT)
-CHECK_SYMBOL_EXISTS(strlcpy "${PROJECT_INCLUDES}" HAVE_STRLCPY)
-CHECK_SYMBOL_EXISTS(vsnprintf "${PROJECT_INCLUDES}" HAVE_VSNPRINTF)
-CHECK_SYMBOL_EXISTS(snprintf "${PROJECT_INCLUDES}" HAVE_SNPRINTF)
-CHECK_SYMBOL_EXISTS(scandir "${PROJECT_INCLUDES}" HAVE_SCANDIR)
-
-INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
-
-CHECK_TYPE_SIZE(short SIZEOF_SHORT)
-CHECK_TYPE_SIZE(int SIZEOF_INT)
-CHECK_TYPE_SIZE(long SIZEOF_LONG)
-
-IF(${SIZEOF_SHORT} MATCHES "^2$")
- SET(U16 "unsigned short")
-ENDIF(${SIZEOF_SHORT} MATCHES "^2$")
-
-IF(${SIZEOF_INT} MATCHES "^4$")
- SET(U32 "unsigned")
-ELSE(${SIZEOF_INT} MATCHES "^4$")
- IF(${SIZEOF_LONG} MATCHES "^4$")
- SET(U32 "unsigned long")
- ENDIF(${SIZEOF_LONG} MATCHES "^4$")
-ENDIF(${SIZEOF_INT} MATCHES "^4$")
-
-IF(${SIZEOF_INT} MATCHES "^8$")
- SET(U64 "unsigned")
-ELSE(${SIZEOF_INT} MATCHES "^8$")
- IF(${SIZEOF_LONG} MATCHES "^8$")
- SET(U64 "unsigned long")
- ENDIF(${SIZEOF_LONG} MATCHES "^8$")
-ENDIF(${SIZEOF_INT} MATCHES "^8$")
-
-SET(HAVE_GL 0)
-
-# Set an option to build FLTK with OpenGL support
-OPTION(USE_OPENGL "OpenGL Support" ON)
-IF(USE_OPENGL)
-INCLUDE(${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
-IF(OPENGL_FOUND)
- SET(HAVE_GL 1)
-ENDIF(OPENGL_FOUND)
-ENDIF(USE_OPENGL)
-
-#
-# Perform the FLTK specific test with status output
-#
-MACRO(PERFORM_CMAKE_TEST FILE TEST)
- IF("${TEST}" MATCHES "^${TEST}$")
- # Perform test
- SET(MACRO_CHECK_FUNCTION_DEFINITIONS
- "-D${TEST} ${CMAKE_REQUIRED_FLAGS}")
- IF(CMAKE_REQUIRED_LIBRARIES)
- SET(TEST_ADD_LIBRARIES
- "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
- ENDIF(CMAKE_REQUIRED_LIBRARIES)
- MESSAGE(STATUS "Performing Test ${TEST}")
-
- TRY_COMPILE(${TEST}
- ${CMAKE_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
- CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
- -DLINK_LIBRARIES:STRING=${CMAKE_TEST_SPECIAL_LIBRARIES}
- "${TEST_ADD_LIBRARIES}"
- OUTPUT_VARIABLE OUTPUT)
- IF(${TEST})
- SET(${TEST} 1 CACHE INTERNAL "CMake test ${FUNCTION}")
- MESSAGE(STATUS "Performing Test ${TEST} - Success")
- ELSE(${TEST})
- MESSAGE(STATUS "Performing Test ${TEST} - Failed")
- SET(${TEST} 0 CACHE INTERNAL "Test ${FUNCTION}")
- WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
- "Performing Test ${TEST} failed with the following output:\n"
- "${OUTPUT}\n" APPEND)
- ENDIF(${TEST})
- ELSE("${TEST}" MATCHES "^${TEST}$")
- # Have result
- #FOREACH(tst ${TEST})
- # MESSAGE("Test ${TEST} resulted in ${${tst}}")
- #ENDFOREACH(tst ${TEST})
- ENDIF("${TEST}" MATCHES "^${TEST}$")
-ENDMACRO(PERFORM_CMAKE_TEST FILE TEST)
-
-# Set an option to build the zlib library or not
-OPTION(FLTK_USE_SYSTEM_ZLIB "Use's system zlib" ON)
-IF(FLTK_USE_SYSTEM_ZLIB)
-IF(ZLIB_FOUND)
- SET(CMAKE_TEST_SPECIAL_LIBRARIES ${ZLIB_LIBRARIES})
- PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_LIBZ)
-ENDIF(ZLIB_FOUND)
-# We build the fltk zlib
-ELSE(FLTK_USE_SYSTEM_ZLIB)
-MARK_AS_ADVANCED(ZLIB_INCLUDE_DIR)
-MARK_AS_ADVANCED(ZLIB_LIBRARY)
-SUBDIRS(zlib)
-ENDIF(FLTK_USE_SYSTEM_ZLIB)
-
-# Set an option to build the jpeg library or not
-OPTION(FLTK_USE_SYSTEM_JPEG "Use's system jpeg" ON)
-IF(FLTK_USE_SYSTEM_JPEG)
-IF(JPEG_FOUND)
- SET(CMAKE_TEST_SPECIAL_LIBRARIES ${JPEG_LIBRARIES})
- PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_LIBJPEG)
-ENDIF(JPEG_FOUND)
-# We build the fltk png
-ELSE(FLTK_USE_SYSTEM_JPEG)
-MARK_AS_ADVANCED(JPEG_INCLUDE_DIR)
-MARK_AS_ADVANCED(JPEG_LIBRARY)
-SUBDIRS(jpeg)
-ENDIF(FLTK_USE_SYSTEM_JPEG)
-
-
-
-# Set an option to build the png library or not
-OPTION(FLTK_USE_SYSTEM_PNG "Use's system png" ON)
-IF(FLTK_USE_SYSTEM_PNG)
-IF(PNG_FOUND)
- SET(CMAKE_TEST_SPECIAL_LIBRARIES ${PNG_LIBRARIES})
- PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_LIBPNG)
- PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_PNG_GET_VALID)
- PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_PNG_SET_TRNS_TO_ALPHA)
- SET(HAVE_PNG_H 1)
-ENDIF(PNG_FOUND)
-# We build the fltk png
-ELSE(FLTK_USE_SYSTEM_PNG)
-MARK_AS_ADVANCED(PNG_INCLUDE_DIR)
-MARK_AS_ADVANCED(PNG_LIBRARY)
-SUBDIRS(png)
-ENDIF(FLTK_USE_SYSTEM_PNG)
-
-
-
-SUBDIRS(src)
-SUBDIRS(fluid)
-
-# Set the fluid executable path
-SET(FLUID_COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/fluid)
-
-# Set an option to build the tests
-OPTION(BUILD_TESTS "Build the tests" ON)
-IF(BUILD_TESTS)
- SUBDIRS(test)
-ENDIF(BUILD_TESTS )
-
-
-#Genereate the configuration file
-SET(FLTK_EXECUTABLE_DIRS ${EXECUTABLE_OUTPUT_PATH})
-SET(FLTK_LIBRARY_DIRS ${LIBRARY_OUTPUT_PATH})
-
-CONFIGURE_FILE(${FLTK_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
- ${FLTK_BINARY_DIR}/FLTKConfig.cmake)
+# Main CMakeLists.txt to build the FLTK project using CMake (www.cmake.org)
+# Written by Andy Cedilnik and Julien Jomier
+
+PROJECT(FLTK)
+
+SET(EXECUTABLE_OUTPUT_PATH ${FLTK_BINARY_DIR}/bin CACHE INTERNAL
+ "Where to put the executables for FLTK"
+ )
+SET(LIBRARY_OUTPUT_PATH "${FLTK_BINARY_DIR}/lib" CACHE INTERNAL
+ "Where to put the libraries for FLTK"
+ )
+
+#-----------------------------------------------------------------------------
+# Test for some required system information.
+INCLUDE (${CMAKE_ROOT}/Modules/FindThreads.cmake)
+SET (CMAKE_USE_PTHREADS "${CMAKE_USE_PTHREADS_INIT}" CACHE BOOL "Use the pthreads library.")
+
+
+SET(FLTK_DATADIR "${CMAKE_INSTALL_PREFIX}/share/FLTK")
+SET(FLTK_DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/FLTK")
+
+CONFIGURE_FILE(${FLTK_SOURCE_DIR}/configh.cmake.in
+ ${FLTK_BINARY_DIR}/config.h)
+
+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)
+
+SET(FLTK_X11 1)
+SET(FLTK_APPLE 0)
+IF(APPLE)
+ OPTION(FLTK_APPLE_X11 "Use X11 on Mac instead of Carbon" OFF)
+ MARK_AS_ADVANCED(FLTK_APPLE_X11)
+ IF(NOT FLTK_APPLE_X11)
+ SET(FLTK_APPLE 1)
+ SET(FLTK_X11 0)
+ OPTION(FLTK_QUARTZ "Use Quartz instead of Quickdraw" OFF)
+ ENDIF(NOT FLTK_APPLE_X11)
+ENDIF(APPLE)
+
+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)
+ ADD_DEFINITIONS(-DWIN32)
+ SET( FLTK_PLATFORM_DEPENDENT_LIBS ole32 uuid comctl32 wsock32 supc++ -lm -lgdi32)
+ENDIF(CYGWIN)
+
+
+INCLUDE_DIRECTORIES(
+ ${FLTK_BINARY_DIR}
+ ${FLTK_SOURCE_DIR}
+ )
+
+INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
+# Check if header file exists and add it to the list.
+MACRO(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
+ CHECK_INCLUDE_FILES("${PROJECT_INCLUDES};${FILE}" ${VARIABLE})
+ IF(${VARIABLE})
+ SET(PROJECT_INCLUDES ${PROJECT_INCLUDES} ${FILE})
+ ENDIF(${VARIABLE})
+ENDMACRO(CHECK_INCLUDE_FILE_CONCAT)
+CHECK_INCLUDE_FILE_CONCAT("GL/glu.h" HAVE_GL_GLU_H)
+CHECK_INCLUDE_FILE_CONCAT("OpenGL/glu.h" HAVE_OPENGL_GLU_H)
+CHECK_INCLUDE_FILE_CONCAT("dirent.h" HAVE_DIRENT_H)
+CHECK_INCLUDE_FILE_CONCAT("stdio.h" HAVE_STDIO_H)
+CHECK_INCLUDE_FILE_CONCAT("strings.h" HAVE_STRINGS_H)
+CHECK_INCLUDE_FILE_CONCAT("sys/dir.h" HAVE_SYS_DIR_H)
+CHECK_INCLUDE_FILE_CONCAT("sys/ndir.h" HAVE_SYS_NDIR_H)
+CHECK_INCLUDE_FILE_CONCAT("sys/select.h" HAVE_SYS_SELECT_H)
+CHECK_INCLUDE_FILE_CONCAT("sys/stdtypes.h" HAVE_SYS_STDTYPES_H)
+CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
+
+INCLUDE(${CMAKE_ROOT}/Modules/FindZLIB.cmake)
+INCLUDE(${CMAKE_ROOT}/Modules/FindPNG.cmake)
+INCLUDE(${CMAKE_ROOT}/Modules/FindJPEG.cmake)
+
+INCLUDE(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
+INCLUDE(${FLTK_SOURCE_DIR}/CMake/CheckFunctionWithHeaderExists.cmake)
+
+CHECK_FUNCTIONWITHHEADER_EXISTS("int strcasecmp()" "${PROJECT_INCLUDES}" HAVE_STRCASECMP)
+
+CHECK_SYMBOL_EXISTS(strlcat "${PROJECT_INCLUDES}" HAVE_STRLCAT)
+CHECK_SYMBOL_EXISTS(strlcpy "${PROJECT_INCLUDES}" HAVE_STRLCPY)
+CHECK_SYMBOL_EXISTS(vsnprintf "${PROJECT_INCLUDES}" HAVE_VSNPRINTF)
+CHECK_SYMBOL_EXISTS(snprintf "${PROJECT_INCLUDES}" HAVE_SNPRINTF)
+CHECK_SYMBOL_EXISTS(scandir "${PROJECT_INCLUDES}" HAVE_SCANDIR)
+
+INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
+
+CHECK_TYPE_SIZE(short SIZEOF_SHORT)
+CHECK_TYPE_SIZE(int SIZEOF_INT)
+CHECK_TYPE_SIZE(long SIZEOF_LONG)
+
+IF(${SIZEOF_SHORT} MATCHES "^2$")
+ SET(U16 "unsigned short")
+ENDIF(${SIZEOF_SHORT} MATCHES "^2$")
+
+IF(${SIZEOF_INT} MATCHES "^4$")
+ SET(U32 "unsigned")
+ELSE(${SIZEOF_INT} MATCHES "^4$")
+ IF(${SIZEOF_LONG} MATCHES "^4$")
+ SET(U32 "unsigned long")
+ ENDIF(${SIZEOF_LONG} MATCHES "^4$")
+ENDIF(${SIZEOF_INT} MATCHES "^4$")
+
+IF(${SIZEOF_INT} MATCHES "^8$")
+ SET(U64 "unsigned")
+ELSE(${SIZEOF_INT} MATCHES "^8$")
+ INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
+ IF(${SIZEOF_LONG} MATCHES "^8$")
+ SET(U64 "unsigned long")
+ ENDIF(${SIZEOF_LONG} MATCHES "^8$")
+ENDIF(${SIZEOF_INT} MATCHES "^8$")
+
+SET(HAVE_GL 0)
+
+# Set an option to build FLTK with OpenGL support
+OPTION(USE_OPENGL "OpenGL Support" ON)
+IF(USE_OPENGL)
+ INCLUDE(${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
+ IF(OPENGL_FOUND)
+ SET(HAVE_GL 1)
+ ENDIF(OPENGL_FOUND)
+ENDIF(USE_OPENGL)
+
+#
+# Perform the FLTK specific test with status output
+#
+MACRO(PERFORM_CMAKE_TEST FILE TEST)
+ IF("${TEST}" MATCHES "^${TEST}$")
+ # Perform test
+ SET(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${TEST} ${CMAKE_REQUIRED_FLAGS}")
+ IF(CMAKE_REQUIRED_LIBRARIES)
+ SET(TEST_ADD_LIBRARIES
+ "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+ ENDIF(CMAKE_REQUIRED_LIBRARIES)
+ MESSAGE(STATUS "Performing Test ${TEST}")
+
+ TRY_COMPILE(${TEST}
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DLINK_LIBRARIES:STRING=${CMAKE_TEST_SPECIAL_LIBRARIES}
+ "${TEST_ADD_LIBRARIES}"
+ OUTPUT_VARIABLE OUTPUT)
+ IF(${TEST})
+ SET(${TEST} 1 CACHE INTERNAL "CMake test ${FUNCTION}")
+ MESSAGE(STATUS "Performing Test ${TEST} - Success")
+ ELSE(${TEST})
+ MESSAGE(STATUS "Performing Test ${TEST} - Failed")
+ SET(${TEST} 0 CACHE INTERNAL "Test ${FUNCTION}")
+ WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
+ "Performing Test ${TEST} failed with the following output:\n"
+ "${OUTPUT}\n" APPEND)
+ ENDIF(${TEST})
+ ELSE("${TEST}" MATCHES "^${TEST}$")
+ # Have result
+ #FOREACH(tst ${TEST})
+ # MESSAGE("Test ${TEST} resulted in ${${tst}}")
+ #ENDFOREACH(tst ${TEST})
+ ENDIF("${TEST}" MATCHES "^${TEST}$")
+ENDMACRO(PERFORM_CMAKE_TEST FILE TEST)
+
+# Set an option to build the zlib library or not
+OPTION(FLTK_USE_SYSTEM_ZLIB "Use's system zlib" ON)
+IF(FLTK_USE_SYSTEM_ZLIB)
+ IF(ZLIB_FOUND)
+ SET(CMAKE_TEST_SPECIAL_LIBRARIES ${ZLIB_LIBRARIES})
+ PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_LIBZ)
+ ENDIF(ZLIB_FOUND)
+ # We build the fltk zlib
+ELSE(FLTK_USE_SYSTEM_ZLIB)
+ MARK_AS_ADVANCED(ZLIB_INCLUDE_DIR)
+ MARK_AS_ADVANCED(ZLIB_LIBRARY)
+ SUBDIRS(zlib)
+ENDIF(FLTK_USE_SYSTEM_ZLIB)
+
+# Set an option to build the jpeg library or not
+OPTION(FLTK_USE_SYSTEM_JPEG "Use's system jpeg" ON)
+IF(FLTK_USE_SYSTEM_JPEG)
+ IF(JPEG_FOUND)
+ SET(CMAKE_TEST_SPECIAL_LIBRARIES ${JPEG_LIBRARIES})
+ PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_LIBJPEG)
+ ENDIF(JPEG_FOUND)
+ # We build the fltk png
+ELSE(FLTK_USE_SYSTEM_JPEG)
+ MARK_AS_ADVANCED(JPEG_INCLUDE_DIR)
+ MARK_AS_ADVANCED(JPEG_LIBRARY)
+ SUBDIRS(jpeg)
+ENDIF(FLTK_USE_SYSTEM_JPEG)
+
+# Set an option to build the png library or not
+OPTION(FLTK_USE_SYSTEM_PNG "Use's system png" ON)
+IF(FLTK_USE_SYSTEM_PNG)
+ IF(PNG_FOUND)
+ SET(CMAKE_TEST_SPECIAL_LIBRARIES ${PNG_LIBRARIES})
+ PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_LIBPNG)
+ PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_PNG_GET_VALID)
+ PERFORM_CMAKE_TEST(CMake/PlatformTests.cxx HAVE_PNG_SET_TRNS_TO_ALPHA)
+ SET(HAVE_PNG_H 1)
+ ENDIF(PNG_FOUND)
+ # We build the fltk png
+ELSE(FLTK_USE_SYSTEM_PNG)
+ MARK_AS_ADVANCED(PNG_INCLUDE_DIR)
+ MARK_AS_ADVANCED(PNG_LIBRARY)
+ SUBDIRS(png)
+ENDIF(FLTK_USE_SYSTEM_PNG)
+
+SUBDIRS(src)
+SUBDIRS(fluid)
+
+SET(FLTK_CREATE_SYMLINKS 1)
+IF(WIN32)
+ IF(NOT UNIX)
+ SET(FLTK_CREATE_SYMLINKS 0)
+ ENDIF(NOT UNIX)
+ENDIF(WIN32)
+
+MACRO(SAFE_CREATE_SYMLINK SOURCE DESTINATION)
+ IF(EXISTS "${DESTINATION}")
+ ELSE(EXISTS "${DESTINATION}")
+ EXEC_PROGRAM(ln ARGS -s
+ "${SOURCE}"
+ "${DESTINATION}" OUTPUT_VARIABLE ln_output
+ RETURN_VALUE ln_retval)
+ IF("${ln_retval}" GREATER 0)
+ MESSAGE(FATAL_ERROR "Problem creatin symlink from \"${SOURCE}\" to \"${DESTINATION}\":\n${ln_output}")
+ ENDIF("${ln_retval}" GREATER 0)
+ ENDIF(EXISTS "${DESTINATION}")
+ENDMACRO(SAFE_CREATE_SYMLINK SOURCE DESTINATION)
+
+# If this is out-of-source build, then copy FL directory
+FILE(GLOB FLTK_HEADER_FILES "${FLTK_SOURCE_DIR}/FL/*")
+FOREACH(file ${FLTK_HEADER_FILES})
+ GET_FILENAME_COMPONENT(ext "${file}" EXT)
+ GET_FILENAME_COMPONENT(namewe "${file}" NAME_WE)
+ GET_FILENAME_COMPONENT(name "${file}" NAME)
+ STRING(COMPARE EQUAL "${ext}" ".h" lower_case_h)
+ STRING(COMPARE EQUAL "${ext}" ".H" upper_case_h)
+ IF(lower_case_h OR upper_case_h)
+ SET(outfile_h "${FLTK_BINARY_DIR}/FL/${namewe}.h")
+ SET(outfile_H "${FLTK_BINARY_DIR}/FL/${namewe}.H")
+ CONFIGURE_FILE("${file}" "${outfile_H}" COPYONLY IMMEDIATE)
+# IF(FLTK_CREATE_SYMLINKS)
+# SAFE_CREATE_SYMLINK("${outfile_H}" "${outfile_h}")
+# ENDIF(FLTK_CREATE_SYMLINKS)
+ ELSE(lower_case_h OR upper_case_h)
+ STRING(COMPARE EQUAL "${ext}" ".r" mac_resource_file)
+ IF(mac_resource_file)
+ SET(outfile "${FLTK_BINARY_DIR}/FL/${name}")
+ CONFIGURE_FILE("${file}" "${outfile}" COPYONLY IMMEDIATE)
+ ENDIF(mac_resource_file)
+ ENDIF(lower_case_h OR upper_case_h)
+ENDFOREACH(file)
+
+IF(FLTK_CREATE_SYMLINKS)
+ SAFE_CREATE_SYMLINK(
+ "${FLTK_BINARY_DIR}/FL"
+ "${FLTK_BINARY_DIR}/Fl")
+
+ SAFE_CREATE_SYMLINK(
+ "${FLTK_BINARY_DIR}/FL/gl.H"
+ "${FLTK_BINARY_DIR}/FL/gl.h")
+
+ # Create the symlinks
+ FILE(READ ${FLTK_SOURCE_DIR}/fltk.list.in SYMLINKSFILE)
+ STRING(REGEX MATCHALL "(l 0000 root sys .includedir/)([^(\n)])+"
+ SYMLINKS ${SYMLINKSFILE})
+ FOREACH(var ${SYMLINKS} )
+ IF("${var}" MATCHES ".H")
+ STRING(REGEX MATCH "(/F)([^(\n)])+" tmp ${var})
+ STRING(REGEX MATCH "(/F)([^( )])+" in ${tmp})
+ STRING(REGEX MATCH "( )([^(\n)])+" out ${tmp})
+ STRING(REGEX REPLACE "( )" "" out ${out})
+ SAFE_CREATE_SYMLINK("${FLTK_BINARY_DIR}/FL/${out}" "${FLTK_BINARY_DIR}/${in}")
+ ENDIF("${var}" MATCHES ".H")
+ ENDFOREACH(var)
+ENDIF(FLTK_CREATE_SYMLINKS)
+
+
+# Set the fluid executable path
+SET(FLUID_COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/fluid)
+
+# Set an option to build the tests
+OPTION(BUILD_TESTS "Build the tests" ON)
+IF(BUILD_TESTS)
+ SUBDIRS(test)
+ ENABLE_TESTING()
+ INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake)
+ENDIF(BUILD_TESTS )
+
+#Genereate the configuration file
+SET(FLTK_EXECUTABLE_DIRS ${EXECUTABLE_OUTPUT_PATH})
+SET(FLTK_LIBRARY_DIRS ${LIBRARY_OUTPUT_PATH})
+
+CONFIGURE_FILE(${FLTK_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
+ ${FLTK_BINARY_DIR}/FLTKConfig.cmake)