diff --git a/CHANGES b/CHANGES index 5f40e868a..e2a33ad61 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ CHANGES IN FLTK 1.1.5 - - Documentation updates (STR #570) + - Documentation updates (STR #568, STR #570) + - More CMake updates (STR #499) + - The Watcom C++ compiler needed a small change (STR + #567) - Added DESTDIR support and now remove all man pages for the "uninstall" target (STR #545) - Fix PNG drawing on buggy WIN32 graphics cards (STR diff --git a/CMake/CheckFunctionWithHeaderExists.cmake b/CMake/CheckFunctionWithHeaderExists.cmake index 7d824cd96..46694e82a 100644 --- a/CMake/CheckFunctionWithHeaderExists.cmake +++ b/CMake/CheckFunctionWithHeaderExists.cmake @@ -1,54 +1,54 @@ -# -# Check if the symbol exists in include files -# -# CHECK_FUNCTIONWITHHEADER_EXISTS - macro which checks the symbol exists in include files. -# SYMBOL - symbol -# FILES - include files to check -# VARIABLE - variable to return result -# - -MACRO(CHECK_FUNCTIONWITHHEADER_EXISTS SYMBOL FILES VARIABLE) - IF("${VARIABLE}" MATCHES "^${VARIABLE}$") - SET(CHECK_SYMBOL_EXISTS_CONTENT "/* */\n") - SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS}) - IF(CMAKE_REQUIRED_LIBRARIES) - SET(CHECK_SYMBOL_EXISTS_LIBS - "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") - ENDIF(CMAKE_REQUIRED_LIBRARIES) - FOREACH(FILE ${FILES}) - SET(CHECK_SYMBOL_EXISTS_CONTENT - "${CHECK_SYMBOL_EXISTS_CONTENT}#include <${FILE}>\n") - ENDFOREACH(FILE) - SET(CHECK_SYMBOL_EXISTS_CONTENT - "${CHECK_SYMBOL_EXISTS_CONTENT}\nint main()\n{\n${SYMBOL};return 0;\n}\n") - - FILE(WRITE ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c - "${CHECK_SYMBOL_EXISTS_CONTENT}") - - MESSAGE(STATUS "Looking for ${SYMBOL}") - TRY_COMPILE(${VARIABLE} - ${CMAKE_BINARY_DIR} - ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c - CMAKE_FLAGS - -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS} - "${CHECK_SYMBOL_EXISTS_LIBS}" - OUTPUT_VARIABLE OUTPUT) - IF(${VARIABLE}) - MESSAGE(STATUS "Looking for ${SYMBOL} - found") - SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}") - FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log - "Determining if the ${SYMBOL} " - "exist passed with the following output:\n" - "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n" - "${CHECK_SYMBOL_EXISTS_CONTENT}\n") - ELSE(${VARIABLE}) - MESSAGE(STATUS "Looking for ${SYMBOL} - not found.") - SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}") - FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log - "Determining if the ${SYMBOL} " - "exist failed with the following output:\n" - "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n" - "${CHECK_SYMBOL_EXISTS_CONTENT}\n") - ENDIF(${VARIABLE}) - ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") -ENDMACRO(CHECK_FUNCTIONWITHHEADER_EXISTS) +# +# Check if the symbol exists in include files +# +# CHECK_FUNCTIONWITHHEADER_EXISTS - macro which checks the symbol exists in include files. +# SYMBOL - symbol +# FILES - include files to check +# VARIABLE - variable to return result +# + +MACRO(CHECK_FUNCTIONWITHHEADER_EXISTS SYMBOL FILES VARIABLE) + IF("${VARIABLE}" MATCHES "^${VARIABLE}$") + SET(CHECK_SYMBOL_EXISTS_CONTENT "/* */\n") + SET(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS}) + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_SYMBOL_EXISTS_LIBS + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ENDIF(CMAKE_REQUIRED_LIBRARIES) + FOREACH(FILE ${FILES}) + SET(CHECK_SYMBOL_EXISTS_CONTENT + "${CHECK_SYMBOL_EXISTS_CONTENT}#include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CHECK_SYMBOL_EXISTS_CONTENT + "${CHECK_SYMBOL_EXISTS_CONTENT}\nint main()\n{\n${SYMBOL};return 0;\n}\n") + + FILE(WRITE ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c + "${CHECK_SYMBOL_EXISTS_CONTENT}") + + MESSAGE(STATUS "Looking for ${SYMBOL}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS} + "${CHECK_SYMBOL_EXISTS_LIBS}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol ${SYMBOL}") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log + "Determining if the ${SYMBOL} " + "exist passed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n" + "${CHECK_SYMBOL_EXISTS_CONTENT}\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for ${SYMBOL} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have symbol ${SYMBOL}") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log + "Determining if the ${SYMBOL} " + "exist failed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeTmp/CheckSymbolExists.c:\n" + "${CHECK_SYMBOL_EXISTS_CONTENT}\n") + ENDIF(${VARIABLE}) + ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$") +ENDMACRO(CHECK_FUNCTIONWITHHEADER_EXISTS) diff --git a/CMake/FLTKConfig.cmake.in b/CMake/FLTKConfig.cmake.in index 3f53597cc..c32c41f20 100644 --- a/CMake/FLTKConfig.cmake.in +++ b/CMake/FLTKConfig.cmake.in @@ -1,32 +1,32 @@ -#----------------------------------------------------------------------------- -# -# FLTKConfig.cmake - FLTK CMake configuration file for external projects. -# -# This file is configured by FLTK and used by the UseFLTK.cmake module -# to load FLTK's settings for an external project. - -# The FLTK source tree. -SET(FLTK_SOURCE_DIR "@FLTK_SOURCE_DIR@") - -# The FLTK include file directories. -SET(FLTK_EXECUTABLE_DIRS "@FLTK_EXECUTABLE_DIRS@") -SET(FLTK_LIBRARY_DIRS "@FLTK_LIBRARY_DIRS@") -SET(FLTK_LIBRARIES "fltk_images;fltk;fltk_gl;fltk_forms") - -# The C and C++ flags added by FLTK to the cmake-configured flags. -SET(FLTK_REQUIRED_C_FLAGS "@FLTK_REQUIRED_C_FLAGS@") -SET(FLTK_REQUIRED_CXX_FLAGS "@FLTK_REQUIRED_CXX_FLAGS@") - -# The FLTK version number -SET(FLTK_VERSION_MAJOR "@FLTK_VERSION_MAJOR@") -SET(FLTK_VERSION_MINOR "@FLTK_VERSION_MINOR@") -SET(FLTK_VERSION_PATCH "@FLTK_VERSION_PATCH@") - -# The location of the UseFLTK.cmake file. -SET(FLTK_USE_FILE "@FLTK_USE_FILE@") - -# The build settings file. -SET(FLTK_BUILD_SETTINGS_FILE "@FLTK_BUILD_SETTINGS_FILE@") - -# Whether FLTK was built with shared libraries. -SET(FLTK_BUILD_SHARED "@BUILD_SHARED_LIBS@") +#----------------------------------------------------------------------------- +# +# FLTKConfig.cmake - FLTK CMake configuration file for external projects. +# +# This file is configured by FLTK and used by the UseFLTK.cmake module +# to load FLTK's settings for an external project. + +# The FLTK source tree. +SET(FLTK_SOURCE_DIR "@FLTK_SOURCE_DIR@") + +# The FLTK include file directories. +SET(FLTK_EXECUTABLE_DIRS "@FLTK_EXECUTABLE_DIRS@") +SET(FLTK_LIBRARY_DIRS "@FLTK_LIBRARY_DIRS@") +SET(FLTK_LIBRARIES "fltk_images;fltk;fltk_gl;fltk_forms") + +# The C and C++ flags added by FLTK to the cmake-configured flags. +SET(FLTK_REQUIRED_C_FLAGS "@FLTK_REQUIRED_C_FLAGS@") +SET(FLTK_REQUIRED_CXX_FLAGS "@FLTK_REQUIRED_CXX_FLAGS@") + +# The FLTK version number +SET(FLTK_VERSION_MAJOR "@FLTK_VERSION_MAJOR@") +SET(FLTK_VERSION_MINOR "@FLTK_VERSION_MINOR@") +SET(FLTK_VERSION_PATCH "@FLTK_VERSION_PATCH@") + +# The location of the UseFLTK.cmake file. +SET(FLTK_USE_FILE "@FLTK_USE_FILE@") + +# The build settings file. +SET(FLTK_BUILD_SETTINGS_FILE "@FLTK_BUILD_SETTINGS_FILE@") + +# Whether FLTK was built with shared libraries. +SET(FLTK_BUILD_SHARED "@BUILD_SHARED_LIBS@") 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) diff --git a/FL/filename.H b/FL/filename.H index 04aec10b6..df77b4762 100644 --- a/FL/filename.H +++ b/FL/filename.H @@ -1,5 +1,5 @@ /* - * "$Id: filename.H,v 1.11.2.4.2.14 2004/04/11 04:38:54 easysw Exp $" + * "$Id: filename.H,v 1.11.2.4.2.15 2004/10/18 20:29:54 easysw Exp $" * * Filename header file for the Fast Light Tool Kit (FLTK). * @@ -51,7 +51,7 @@ inline int fl_filename_relative(char *to, const char *from) { return fl_filename # endif /* __cplusplus */ -# if defined(WIN32) && !defined(__CYGWIN__) +# if defined(WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__) struct dirent {char d_name[1];}; @@ -65,6 +65,10 @@ struct dirent {char d_name[1];}; # include # include "/usr/include/dirent.h" +# elif defined(__WATCOMC__) +# include +# include + # else /* * WARNING: on some systems (very few nowadays?) may not exist. @@ -127,5 +131,5 @@ FL_EXPORT int fl_filename_list(const char *d, struct dirent ***l, #endif /* FL_FILENAME_H */ /* - * End of "$Id: filename.H,v 1.11.2.4.2.14 2004/04/11 04:38:54 easysw Exp $". + * End of "$Id: filename.H,v 1.11.2.4.2.15 2004/10/18 20:29:54 easysw Exp $". */ diff --git a/configh.cmake.in b/configh.cmake.in index fdd07952e..91d3f1e35 100644 --- a/configh.cmake.in +++ b/configh.cmake.in @@ -1,234 +1,258 @@ -/* - * "$Id: configh.cmake.in,v 1.1.2.1 2004/09/13 02:12:40 easysw Exp $" - * - * Configuration file for the Fast Light Tool Kit (FLTK). - * @configure_input@ - * - * Copyright 1998-2003 by Bill Spitzak and others. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "fltk-bugs@fltk.org". - */ - -/* - * Where to find files... - */ - -#define FLTK_DATADIR "@FLTK_DATADIR@" -#define FLTK_DOCDIR "@FLTK_DOCDIR@" - -/* - * BORDER_WIDTH: - * - * Thickness of FL_UP_BOX and FL_DOWN_BOX. Current 1,2, and 3 are - * supported. - * - * 3 is the historic FLTK look. - * 2 is the default and looks like Microsoft Windows, KDE, and Qt. - * 1 is a plausible future evolution... - * - * Note that this may be simulated at runtime by redefining the boxtypes - * using Fl::set_boxtype(). - */ - -#define BORDER_WIDTH 2 - -/* - * HAVE_GL: - * - * Do you have OpenGL? Set this to 0 if you don't have or plan to use - * OpenGL, and FLTK will be smaller. - */ - -#define HAVE_GL @HAVE_GL@ - -/* - * HAVE_GL_GLU_H: - * - * Do you have the OpenGL Utility Library header file? - * (many broken Mesa RPMs do not...) - */ - -#cmakedefine HAVE_GL_GLU_H @HAVE_GL_GLU_H@ - -/* - * USE_COLORMAP: - * - * Setting this to zero will save a good deal of code (especially for - * fl_draw_image), but FLTK will only work on TrueColor visuals. - */ - -#define USE_COLORMAP 1 - -/* - * USE_XFT - * - * Use the new Xft library to draw anti-aliased text. - */ - -#define USE_XFT 0 - -/* - * HAVE_XDBE: - * - * Do we have the X double-buffer extension? - */ - -#define HAVE_XDBE 0 - -/* - * USE_XDBE: - * - * Actually try to use the double-buffer extension? - */ - -#define USE_XDBE HAVE_XDBE - -/* - * HAVE_OVERLAY: - * - * Use the X overlay extension? FLTK will try to use an overlay - * visual for Fl_Overlay_Window, the Gl_Window overlay, and for the - * menus. Setting this to zero will remove a substantial amount of - * code from FLTK. Overlays have only been tested on SGI servers! - */ - -#define HAVE_OVERLAY 0 - -/* - * HAVE_GL_OVERLAY: - * - * It is possible your GL has an overlay even if X does not. If so, - * set this to 1. - */ - -#define HAVE_GL_OVERLAY HAVE_OVERLAY - -/* - * WORDS_BIGENDIAN: - * - * Byte order of your machine: 1 = big-endian, 0 = little-endian. - */ - -#define WORDS_BIGENDIAN 0 - -/* - * U16, U32, U64: - * - * Types used by fl_draw_image. One of U32 or U64 must be defined. - * U16 is optional but FLTK will work better with it! - */ - -#cmakedefine U16 @U16@ -#cmakedefine U32 @U32@ -#cmakedefine U64 @U64@ - -/* - * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR: - * - * Where is (used only by fl_file_chooser and scandir). - */ - -#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ -#cmakedefine HAVE_SYS_NDIR_H @HAVE_SYS_NDIR_H@ -#cmakedefine HAVE_SYS_DIR_H @HAVE_SYS_DIR_H@ -#cmakedefine HAVE_NDIR_H @HAVE_NDIR_H@ -#cmakedefine HAVE_SCANDIR @HAVE_SCANDIR@ - -/* - * Possibly missing sprintf-style functions: - */ - -#cmakedefine HAVE_VSNPRINTF @HAVE_VSNPRINTF@ -#cmakedefine HAVE_SNPRINTF @HAVE_SNPRINTF@ - -/* - * String functions and headers... - */ - -#cmakedefine HAVE_STRINGS_H @HAVE_STRINGS_H@ -#cmakedefine HAVE_STRCASECMP @HAVE_STRCASECMP@ -#cmakedefine HAVE_STRLCAT @HAVE_STRLCAT@ -#cmakedefine HAVE_STRLCPY @HAVE_STRLCPY@ - -/* - * HAVE_SYS_SELECT_H: - * - * Whether or not select() call has its own header file. - */ - -#cmakedefine HAVE_SYS_SELECT_H @HAVE_SYS_SELECT_H@ - -/* - * HAVE_SYS_STDTYPES_H: - * - * Whether or not we have the header file. - */ - -#cmakedefine HAVE_SYS_STDTYPES_H @HAVE_SYS_STDTYPES_H@ - -/* - * USE_POLL: - * - * Use the poll() call provided on Linux and Irix instead of select() - */ - -#define USE_POLL 0 - -/* - * Do we have various image libraries? - */ - -#cmakedefine HAVE_LIBPNG @HAVE_LIBPNG@ -#cmakedefine HAVE_LIBZ @HAVE_LIBZ@ -#cmakedefine HAVE_LIBJPEG @HAVE_LIBJPEG@ - -/* - * Which header file do we include for libpng? - */ - -#cmakedefine HAVE_PNG_H @HAVE_PNG_H@ -#cmakedefine HAVE_LIBPNG_PNG_H @HAVE_LIBPNG_PNG_H@ - -/* - * Do we have the png_xyz() functions? - */ - -#cmakedefine HAVE_PNG_GET_VALID @HAVE_PNG_GET_VALID@ -#cmakedefine HAVE_PNG_SET_TRNS_TO_ALPHA @HAVE_PNG_SET_TRNS_TO_ALPHA@ - -/* - * Do we have POSIX threading? - */ - -#cmakedefine CMAKE_USE_PTHREADS -#ifdef CMAKE_USE_PTHREADS -#define HAVE_PTHREAD 1 -#else -#define HAVE_PTHREAD 0 -#endif - -#cmakedefine CMAKE_HAVE_PTHREAD_H -#ifdef CMAKE_HAVE_PTHREAD_H -#define HAVE_PTHREAD_H 1 -#else -#define HAVE_PTHREAD_H 0 -#endif - -/* - * End of "$Id: configh.cmake.in,v 1.1.2.1 2004/09/13 02:12:40 easysw Exp $". - */ +/* + * "$Id: configh.cmake.in,v 1.1.2.2 2004/10/18 20:29:54 easysw Exp $" + * + * Configuration file for the Fast Light Tool Kit (FLTK). + * @configure_input@ + * + * Copyright 1998-2004 by Bill Spitzak and others. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems to "fltk-bugs@fltk.org". + */ + +/* + * Where to find files... + */ + +#define FLTK_DATADIR "@FLTK_DATADIR@" +#define FLTK_DOCDIR "@FLTK_DOCDIR@" + +/* + * BORDER_WIDTH: + * + * Thickness of FL_UP_BOX and FL_DOWN_BOX. Current 1,2, and 3 are + * supported. + * + * 3 is the historic FLTK look. + * 2 is the default and looks like Microsoft Windows, KDE, and Qt. + * 1 is a plausible future evolution... + * + * Note that this may be simulated at runtime by redefining the boxtypes + * using Fl::set_boxtype(). + */ + +#define BORDER_WIDTH 2 + +/* + * HAVE_GL: + * + * Do you have OpenGL? Set this to 0 if you don't have or plan to use + * OpenGL, and FLTK will be smaller. + */ + +#define HAVE_GL @HAVE_GL@ + +/* + * HAVE_GL_GLU_H: + * + * Do you have the OpenGL Utility Library header file? + * (many broken Mesa RPMs do not...) + */ + +#cmakedefine HAVE_GL_GLU_H @HAVE_GL_GLU_H@ + +/* + * USE_COLORMAP: + * + * Setting this to zero will save a good deal of code (especially for + * fl_draw_image), but FLTK will only work on TrueColor visuals. + */ + +#define USE_COLORMAP 1 + +/* + * USE_XFT + * + * Use the new Xft library to draw anti-aliased text. + */ + +#define USE_XFT 0 + +/* + * HAVE_XDBE: + * + * Do we have the X double-buffer extension? + */ + +#define HAVE_XDBE 0 + +/* + * USE_XDBE: + * + * Actually try to use the double-buffer extension? + */ + +#define USE_XDBE HAVE_XDBE + +/* + * USE_QUARTZ: + * + * Use Quartz instead of Quickdraw on Apple Mac OS X machines. + * FLTK was originally ported to Quickdraw which is no longer + * supported by Apple. If USE_QUARTZ is defined, FLTK will be + * compiled using Quartz instead. This flag has no meaning on + * other operating systems. + */ + +#cmakedefine FLTK_APPLE +#ifdef FLTK_APPLE + #cmakedefine FLTK_QUARTZ + #ifdef FLTK_QUARTZ + #define USE_QUARTZ 1 + #define __APPLE_QUARTZ__ + #undef __APPLE_QD__ + #else + #define USE_QUARTZ 0 + #undef __APPLE_QUARTZ__ + #define __APPLE_QD__ + #endif +#endif + +/* + * HAVE_OVERLAY: + * + * Use the X overlay extension? FLTK will try to use an overlay + * visual for Fl_Overlay_Window, the Gl_Window overlay, and for the + * menus. Setting this to zero will remove a substantial amount of + * code from FLTK. Overlays have only been tested on SGI servers! + */ + +#define HAVE_OVERLAY 0 + +/* + * HAVE_GL_OVERLAY: + * + * It is possible your GL has an overlay even if X does not. If so, + * set this to 1. + */ + +#define HAVE_GL_OVERLAY HAVE_OVERLAY + +/* + * WORDS_BIGENDIAN: + * + * Byte order of your machine: 1 = big-endian, 0 = little-endian. + */ + +#define WORDS_BIGENDIAN 0 + +/* + * U16, U32, U64: + * + * Types used by fl_draw_image. One of U32 or U64 must be defined. + * U16 is optional but FLTK will work better with it! + */ + +#cmakedefine U16 @U16@ +#cmakedefine U32 @U32@ +#cmakedefine U64 @U64@ + +/* + * HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR: + * + * Where is (used only by fl_file_chooser and scandir). + */ + +#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@ +#cmakedefine HAVE_SYS_NDIR_H @HAVE_SYS_NDIR_H@ +#cmakedefine HAVE_SYS_DIR_H @HAVE_SYS_DIR_H@ +#cmakedefine HAVE_NDIR_H @HAVE_NDIR_H@ +#cmakedefine HAVE_SCANDIR @HAVE_SCANDIR@ + +/* + * Possibly missing sprintf-style functions: + */ + +#cmakedefine HAVE_VSNPRINTF @HAVE_VSNPRINTF@ +#cmakedefine HAVE_SNPRINTF @HAVE_SNPRINTF@ + +/* + * String functions and headers... + */ + +#cmakedefine HAVE_STRINGS_H @HAVE_STRINGS_H@ +#cmakedefine HAVE_STRCASECMP @HAVE_STRCASECMP@ +#cmakedefine HAVE_STRLCAT @HAVE_STRLCAT@ +#cmakedefine HAVE_STRLCPY @HAVE_STRLCPY@ + +/* + * HAVE_SYS_SELECT_H: + * + * Whether or not select() call has its own header file. + */ + +#cmakedefine HAVE_SYS_SELECT_H @HAVE_SYS_SELECT_H@ + +/* + * HAVE_SYS_STDTYPES_H: + * + * Whether or not we have the header file. + */ + +#cmakedefine HAVE_SYS_STDTYPES_H @HAVE_SYS_STDTYPES_H@ + +/* + * USE_POLL: + * + * Use the poll() call provided on Linux and Irix instead of select() + */ + +#define USE_POLL 0 + +/* + * Do we have various image libraries? + */ + +#cmakedefine HAVE_LIBPNG @HAVE_LIBPNG@ +#cmakedefine HAVE_LIBZ @HAVE_LIBZ@ +#cmakedefine HAVE_LIBJPEG @HAVE_LIBJPEG@ + +/* + * Which header file do we include for libpng? + */ + +#cmakedefine HAVE_PNG_H @HAVE_PNG_H@ +#cmakedefine HAVE_LIBPNG_PNG_H @HAVE_LIBPNG_PNG_H@ + +/* + * Do we have the png_xyz() functions? + */ + +#cmakedefine HAVE_PNG_GET_VALID @HAVE_PNG_GET_VALID@ +#cmakedefine HAVE_PNG_SET_TRNS_TO_ALPHA @HAVE_PNG_SET_TRNS_TO_ALPHA@ + +/* + * Do we have POSIX threading? + */ + +#cmakedefine CMAKE_USE_PTHREADS +#ifdef CMAKE_USE_PTHREADS +#define HAVE_PTHREAD 1 +#else +#define HAVE_PTHREAD 0 +#endif + +#cmakedefine CMAKE_HAVE_PTHREAD_H +#ifdef CMAKE_HAVE_PTHREAD_H +#define HAVE_PTHREAD_H 1 +#else +#define HAVE_PTHREAD_H 0 +#endif + +/* + * End of "$Id: configh.cmake.in,v 1.1.2.2 2004/10/18 20:29:54 easysw Exp $". + */ diff --git a/documentation/osissues.html b/documentation/osissues.html index 045921bbf..4701c6790 100644 --- a/documentation/osissues.html +++ b/documentation/osissues.html @@ -346,7 +346,7 @@ with your application use:
     #include "icon.xbm"
     
    -fl_opendisplay();                // needed if display has not been previously opened
    +fl_open_display(); // needed if display has not been previously opened
     
     Pixmap p = XCreateBitmapFromData(fl_display, DefaultRootWindow(fl_display),
                                      icon_bits, icon_width, icon_height);
    diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt
    index b63cf569a..dba571be0 100644
    --- a/fluid/CMakeLists.txt
    +++ b/fluid/CMakeLists.txt
    @@ -1,25 +1,25 @@
    -SET(CPPFILES
    -	Fl_Function_Type.cxx
    -	Fl_Menu_Type.cxx
    -	Fl_Group_Type.cxx
    -	Fl_Widget_Type.cxx
    -	Fl_Type.cxx
    -	Fl_Window_Type.cxx
    -	Fluid_Image.cxx
    -	code.cxx
    -	factory.cxx
    -	file.cxx
    -      fluid.cxx
    -	align_widget.cxx
    -	about_panel.cxx
    -	widget_panel.cxx
    -	alignment_panel.cxx
    -	function_panel.cxx
    -)
    -
    -
    -ADD_EXECUTABLE(fluid ${CPPFILES})
    -TARGET_LINK_LIBRARIES(fluid fltk fltk_images fltk_forms ${FLTK_PLATFORM_DEPENDENT_LIBS})
    -IF(OPENGL_FOUND)
    -	TARGET_LINK_LIBRARIES(fluid fltk_gl)
    -ENDIF(OPENGL_FOUND)
    +SET(CPPFILES
    +	Fl_Function_Type.cxx
    +	Fl_Menu_Type.cxx
    +	Fl_Group_Type.cxx
    +	Fl_Widget_Type.cxx
    +	Fl_Type.cxx
    +	Fl_Window_Type.cxx
    +	Fluid_Image.cxx
    +	code.cxx
    +	factory.cxx
    +	file.cxx
    +      fluid.cxx
    +	align_widget.cxx
    +	about_panel.cxx
    +	widget_panel.cxx
    +	alignment_panel.cxx
    +	function_panel.cxx
    +)
    +
    +
    +ADD_EXECUTABLE(fluid ${CPPFILES})
    +TARGET_LINK_LIBRARIES(fluid fltk fltk_images fltk_forms ${FLTK_PLATFORM_DEPENDENT_LIBS})
    +IF(OPENGL_FOUND)
    +	TARGET_LINK_LIBRARIES(fluid fltk_gl)
    +ENDIF(OPENGL_FOUND)
    diff --git a/jpeg/CMakeLists.txt b/jpeg/CMakeLists.txt
    index 03b33f3e6..66b16d84e 100644
    --- a/jpeg/CMakeLists.txt
    +++ b/jpeg/CMakeLists.txt
    @@ -1,35 +1,35 @@
    -PROJECT(FLTKJPEG)
    -
    -INCLUDE_REGULAR_EXPRESSION("^(jchuff|jconfig|jdct|jdhuff|jerror|jinclude|jmemsys|jmorecfg|jpegint|jpeglib|jversion|jpeg).*$")
    -
    -INCLUDE_DIRECTORIES(${FLTKJPEG_SOURCE_DIR})
    -INCLUDE_DIRECTORIES(${FLTKJPEG_BINARY_DIR})
    -
    -# memmgr back ends: compile only one of these into a working library
    -# (For now, let's use the mode that requires the image fit into memory.
    -# This is the recommended mode for Win32 anyway.)
    -SET(systemdependent_SRCS jmemnobs.c)
    -
    -# library object files common to compression and decompression
    -SET(common_SRCS
    -jcomapi.c jutils.c jerror.c jmemmgr.c
    -)
    -
    -# compression library object files
    -SET(compression_SRCS
    -jcapimin.c jcapistd.c jctrans.c jcparam.c jdatadst.c jcinit.c
    -jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
    -jcsample.c jchuff.c jcphuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
    -jfdctint.c
    -)
    -
    -# decompression library object files
    -SET(decompression_SRCS
    -jdapimin.c jdapistd.c jdtrans.c jdatasrc.c jdmaster.c
    -jdinput.c jdmarker.c jdhuff.c jdphuff.c jdmainct.c jdcoefct.c
    -jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c jidctred.c
    -jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
    -)
    -
    -ADD_LIBRARY(fltk_jpeg ${systemdependent_SRCS} ${common_SRCS} ${compression_SRCS} ${decompression_SRCS})
    -
    +PROJECT(FLTKJPEG)
    +
    +INCLUDE_REGULAR_EXPRESSION("^(jchuff|jconfig|jdct|jdhuff|jerror|jinclude|jmemsys|jmorecfg|jpegint|jpeglib|jversion|jpeg).*$")
    +
    +INCLUDE_DIRECTORIES(${FLTKJPEG_SOURCE_DIR})
    +INCLUDE_DIRECTORIES(${FLTKJPEG_BINARY_DIR})
    +
    +# memmgr back ends: compile only one of these into a working library
    +# (For now, let's use the mode that requires the image fit into memory.
    +# This is the recommended mode for Win32 anyway.)
    +SET(systemdependent_SRCS jmemnobs.c)
    +
    +# library object files common to compression and decompression
    +SET(common_SRCS
    +jcomapi.c jutils.c jerror.c jmemmgr.c
    +)
    +
    +# compression library object files
    +SET(compression_SRCS
    +jcapimin.c jcapistd.c jctrans.c jcparam.c jdatadst.c jcinit.c
    +jcmaster.c jcmarker.c jcmainct.c jcprepct.c jccoefct.c jccolor.c
    +jcsample.c jchuff.c jcphuff.c jcdctmgr.c jfdctfst.c jfdctflt.c
    +jfdctint.c
    +)
    +
    +# decompression library object files
    +SET(decompression_SRCS
    +jdapimin.c jdapistd.c jdtrans.c jdatasrc.c jdmaster.c
    +jdinput.c jdmarker.c jdhuff.c jdphuff.c jdmainct.c jdcoefct.c
    +jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c jidctred.c
    +jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
    +)
    +
    +ADD_LIBRARY(fltk_jpeg ${systemdependent_SRCS} ${common_SRCS} ${compression_SRCS} ${decompression_SRCS})
    +
    diff --git a/png/CMakeLists.txt b/png/CMakeLists.txt
    index abb86f9c9..d8de3fde6 100644
    --- a/png/CMakeLists.txt
    +++ b/png/CMakeLists.txt
    @@ -1,28 +1,28 @@
    -PROJECT(FLTKPNG)
    -INCLUDE_REGULAR_EXPRESSION("^png.*$")
    -
    -INCLUDE_DIRECTORIES(${FLTKZLIB_SOURCE_DIR})
    -
    -IF(ZLIB_INCLUDE_DIR)
    -INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
    -ENDIF(ZLIB_INCLUDE_DIR)
    -
    -INCLUDE_DIRECTORIES(${FLTKPNG_SOURCE_DIR})
    -INCLUDE_DIRECTORIES(${FLTKPNG_BINARY_DIR})
    -
    -# source files for png
    -SET(PNG_SRCS
    -pngget.c    pngrio.c    pngwrite.c
    -png.c       pngmem.c    pngrtran.c  pngtrans.c  pngwtran.c
    -pngerror.c  pngpread.c  pngrutil.c  pngwutil.c
    -pngread.c   pngset.c   pngwio.c
    -)
    -
    -ADD_LIBRARY(fltk_png ${PNG_SRCS})
    -
    -IF(UNIX)
    -TARGET_LINK_LIBRARIES(fltk_png ${FLTK_ZLIB_LIBRARIES} -lm)
    -ELSE(UNIX)
    -TARGET_LINK_LIBRARIES(fltk_png ${FLTK_ZLIB_LIBRARIES})
    -ENDIF(UNIX)
    -
    +PROJECT(FLTKPNG)
    +INCLUDE_REGULAR_EXPRESSION("^png.*$")
    +
    +INCLUDE_DIRECTORIES(${FLTKZLIB_SOURCE_DIR})
    +
    +IF(ZLIB_INCLUDE_DIR)
    +INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
    +ENDIF(ZLIB_INCLUDE_DIR)
    +
    +INCLUDE_DIRECTORIES(${FLTKPNG_SOURCE_DIR})
    +INCLUDE_DIRECTORIES(${FLTKPNG_BINARY_DIR})
    +
    +# source files for png
    +SET(PNG_SRCS
    +pngget.c    pngrio.c    pngwrite.c
    +png.c       pngmem.c    pngrtran.c  pngtrans.c  pngwtran.c
    +pngerror.c  pngpread.c  pngrutil.c  pngwutil.c
    +pngread.c   pngset.c   pngwio.c
    +)
    +
    +ADD_LIBRARY(fltk_png ${PNG_SRCS})
    +
    +IF(UNIX)
    +TARGET_LINK_LIBRARIES(fltk_png ${FLTK_ZLIB_LIBRARIES} -lm)
    +ELSE(UNIX)
    +TARGET_LINK_LIBRARIES(fltk_png ${FLTK_ZLIB_LIBRARIES})
    +ENDIF(UNIX)
    +
    diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
    index 5c3e6f513..84c9f26ce 100644
    --- a/src/CMakeLists.txt
    +++ b/src/CMakeLists.txt
    @@ -1,189 +1,193 @@
    -SET(CPPFILES
    -  Fl.cxx
    -  Fl_Adjuster.cxx
    -  Fl_Bitmap.cxx
    -  Fl_Browser.cxx
    -  Fl_Browser_.cxx
    -  Fl_Browser_load.cxx
    -  Fl_Box.cxx
    -  Fl_Button.cxx
    -  Fl_Chart.cxx
    -  Fl_Check_Browser.cxx
    -  Fl_Check_Button.cxx
    -  Fl_Choice.cxx
    -  Fl_Clock.cxx
    -  Fl_Color_Chooser.cxx
    -  Fl_Counter.cxx
    -  Fl_Dial.cxx
    -  Fl_Double_Window.cxx
    -  Fl_File_Browser.cxx
    -  Fl_File_Chooser.cxx
    -  Fl_File_Chooser2.cxx
    -  Fl_File_Icon.cxx
    -  Fl_File_Input.cxx
    -  Fl_Group.cxx
    -  Fl_Help_View.cxx
    -  Fl_Image.cxx
    -  Fl_Input.cxx
    -  Fl_Input_.cxx
    -  Fl_Light_Button.cxx
    -  Fl_Menu.cxx
    -  Fl_Menu_.cxx
    -  Fl_Menu_Bar.cxx
    -  Fl_Menu_Button.cxx
    -  Fl_Menu_Window.cxx
    -  Fl_Menu_add.cxx
    -  Fl_Menu_global.cxx
    -  Fl_Multi_Label.cxx
    -  Fl_Overlay_Window.cxx
    -  Fl_Pack.cxx
    -  Fl_Pixmap.cxx
    -  Fl_Positioner.cxx
    -  Fl_Preferences.cxx
    -  Fl_Progress.cxx
    -  Fl_Repeat_Button.cxx
    -  Fl_Return_Button.cxx
    -  Fl_Roller.cxx
    -  Fl_Round_Button.cxx
    -  Fl_Scroll.cxx
    -  Fl_Scrollbar.cxx
    -  Fl_Shared_Image.cxx
    -  Fl_Single_Window.cxx
    -  Fl_Slider.cxx
    -  Fl_Tabs.cxx
    -  Fl_Text_Buffer.cxx
    -  Fl_Text_Display.cxx
    -  Fl_Text_Editor.cxx
    -  Fl_Tile.cxx
    -  Fl_Tiled_Image.cxx
    -  Fl_Tooltip.cxx
    -  Fl_Valuator.cxx
    -  Fl_Value_Input.cxx
    -  Fl_Value_Output.cxx
    -  Fl_Value_Slider.cxx
    -  Fl_Widget.cxx
    -  Fl_Window.cxx
    -  Fl_Window_fullscreen.cxx
    -  Fl_Window_hotspot.cxx
    -  Fl_Window_iconize.cxx
    -  Fl_Wizard.cxx
    -  Fl_XBM_Image.cxx
    -  Fl_XPM_Image.cxx
    -  Fl_abort.cxx
    -  Fl_add_idle.cxx
    -  Fl_arg.cxx
    -  Fl_compose.cxx
    -  Fl_display.cxx
    -  Fl_get_key.cxx
    -  Fl_get_system_colors.cxx
    -  Fl_grab.cxx
    -  Fl_lock.cxx
    -  Fl_own_colormap.cxx
    -  Fl_visual.cxx
    -  Fl_x.cxx
    -  filename_absolute.cxx
    -  filename_expand.cxx
    -  filename_ext.cxx
    -  filename_isdir.cxx
    -  filename_list.cxx
    -  filename_match.cxx
    -  filename_setext.cxx
    -  fl_arc.cxx
    -  fl_arci.cxx
    -  fl_ask.cxx
    -  fl_boxtype.cxx
    -  fl_color.cxx
    -  fl_cursor.cxx
    -  fl_curve.cxx
    -  fl_diamond_box.cxx
    -  fl_dnd.cxx
    -  fl_draw.cxx
    -  fl_draw_image.cxx
    -  fl_draw_pixmap.cxx
    -  fl_engraved_label.cxx
    -  fl_file_dir.cxx
    -  fl_font.cxx
    -  fl_labeltype.cxx
    -  fl_line_style.cxx
    -  fl_oval_box.cxx
    -  fl_overlay.cxx
    -  fl_overlay_visual.cxx
    -  fl_plastic.cxx
    -  fl_read_image.cxx
    -  fl_rect.cxx
    -  fl_round_box.cxx
    -  fl_rounded_box.cxx
    -  fl_set_font.cxx
    -  fl_set_fonts.cxx
    -  fl_scroll_area.cxx
    -  fl_shadow_box.cxx
    -  fl_shortcut.cxx
    -  fl_show_colormap.cxx
    -  fl_symbols.cxx
    -  fl_vertex.cxx
    -  )
    -
    -SET(FLCPPFILES
    -  forms_compatability.cxx
    -  forms_bitmap.cxx
    -  forms_free.cxx
    -  forms_fselect.cxx
    -  forms_pixmap.cxx
    -  forms_timer.cxx
    -  )
    -
    -SET(GLCPPFILES
    -  Fl_Gl_Choice.cxx
    -  Fl_Gl_Overlay.cxx
    -  Fl_Gl_Window.cxx
    -  gl_draw.cxx
    -  gl_start.cxx
    -  glut_compatability.cxx
    -  glut_font.cxx
    -  )
    -
    -SET(IMGCPPFILES
    -  fl_images_core.cxx
    -  Fl_BMP_Image.cxx
    -  Fl_File_Icon2.cxx
    -  Fl_GIF_Image.cxx
    -  Fl_Help_Dialog.cxx
    -  Fl_JPEG_Image.cxx
    -  Fl_PNG_Image.cxx
    -  Fl_PNM_Image.cxx
    -  )
    -
    -SET(CFILES 
    -  fl_call_main.c
    -  flstring.c
    -  scandir.c
    -  numericsort.c
    -  vsnprintf.c
    -  )
    -
    -ADD_LIBRARY(fltk ${CPPFILES} ${CFILES})
    -
    -TARGET_LINK_LIBRARIES(fltk ${FLTK_PLATFORM_DEPENDENT_LIBS})
    -
    -IF(X11_FOUND)
    -  TARGET_LINK_LIBRARIES(fltk ${X11_LIBRARIES})
    -ENDIF(X11_FOUND)
    -
    -IF(OPENGL_FOUND)
    -  ADD_LIBRARY(fltk_gl ${GLCPPFILES})
    -  TARGET_LINK_LIBRARIES(fltk_gl fltk ${OPENGL_LIBRARIES})
    -ENDIF(OPENGL_FOUND)
    -
    -ADD_LIBRARY(fltk_forms ${FLCPPFILES})
    -TARGET_LINK_LIBRARIES(fltk_forms fltk)
    -
    -ADD_LIBRARY(fltk_images ${IMGCPPFILES})
    -TARGET_LINK_LIBRARIES(fltk_images fltk)
    -
    -IF(HAVE_LIBPNG)
    -  TARGET_LINK_LIBRARIES(fltk_images ${PNG_LIBRARIES})
    -ENDIF(HAVE_LIBPNG)
    -
    -IF(HAVE_LIBJPEG)
    -  TARGET_LINK_LIBRARIES(fltk_images ${JPEG_LIBRARIES})
    -ENDIF(HAVE_LIBJPEG) 
    +SET(CPPFILES
    +  Fl.cxx
    +  Fl_Adjuster.cxx
    +  Fl_Bitmap.cxx
    +  Fl_Browser.cxx
    +  Fl_Browser_.cxx
    +  Fl_Browser_load.cxx
    +  Fl_Box.cxx
    +  Fl_Button.cxx
    +  Fl_Chart.cxx
    +  Fl_Check_Browser.cxx
    +  Fl_Check_Button.cxx
    +  Fl_Choice.cxx
    +  Fl_Clock.cxx
    +  Fl_Color_Chooser.cxx
    +  Fl_Counter.cxx
    +  Fl_Dial.cxx
    +  Fl_Double_Window.cxx
    +  Fl_File_Browser.cxx
    +  Fl_File_Chooser.cxx
    +  Fl_File_Chooser2.cxx
    +  Fl_File_Icon.cxx
    +  Fl_File_Input.cxx
    +  Fl_Group.cxx
    +  Fl_Help_View.cxx
    +  Fl_Image.cxx
    +  Fl_Input.cxx
    +  Fl_Input_.cxx
    +  Fl_Light_Button.cxx
    +  Fl_Menu.cxx
    +  Fl_Menu_.cxx
    +  Fl_Menu_Bar.cxx
    +  Fl_Menu_Button.cxx
    +  Fl_Menu_Window.cxx
    +  Fl_Menu_add.cxx
    +  Fl_Menu_global.cxx
    +  Fl_Multi_Label.cxx
    +  Fl_Overlay_Window.cxx
    +  Fl_Pack.cxx
    +  Fl_Pixmap.cxx
    +  Fl_Positioner.cxx
    +  Fl_Preferences.cxx
    +  Fl_Progress.cxx
    +  Fl_Repeat_Button.cxx
    +  Fl_Return_Button.cxx
    +  Fl_Roller.cxx
    +  Fl_Round_Button.cxx
    +  Fl_Scroll.cxx
    +  Fl_Scrollbar.cxx
    +  Fl_Shared_Image.cxx
    +  Fl_Single_Window.cxx
    +  Fl_Slider.cxx
    +  Fl_Tabs.cxx
    +  Fl_Text_Buffer.cxx
    +  Fl_Text_Display.cxx
    +  Fl_Text_Editor.cxx
    +  Fl_Tile.cxx
    +  Fl_Tiled_Image.cxx
    +  Fl_Tooltip.cxx
    +  Fl_Valuator.cxx
    +  Fl_Value_Input.cxx
    +  Fl_Value_Output.cxx
    +  Fl_Value_Slider.cxx
    +  Fl_Widget.cxx
    +  Fl_Window.cxx
    +  Fl_Window_fullscreen.cxx
    +  Fl_Window_hotspot.cxx
    +  Fl_Window_iconize.cxx
    +  Fl_Wizard.cxx
    +  Fl_XBM_Image.cxx
    +  Fl_XPM_Image.cxx
    +  Fl_abort.cxx
    +  Fl_add_idle.cxx
    +  Fl_arg.cxx
    +  Fl_compose.cxx
    +  Fl_display.cxx
    +  Fl_get_key.cxx
    +  Fl_get_system_colors.cxx
    +  Fl_grab.cxx
    +  Fl_lock.cxx
    +  Fl_own_colormap.cxx
    +  Fl_visual.cxx
    +  Fl_x.cxx
    +  filename_absolute.cxx
    +  filename_expand.cxx
    +  filename_ext.cxx
    +  filename_isdir.cxx
    +  filename_list.cxx
    +  filename_match.cxx
    +  filename_setext.cxx
    +  fl_arc.cxx
    +  fl_arci.cxx
    +  fl_ask.cxx
    +  fl_boxtype.cxx
    +  fl_color.cxx
    +  fl_cursor.cxx
    +  fl_curve.cxx
    +  fl_diamond_box.cxx
    +  fl_dnd.cxx
    +  fl_draw.cxx
    +  fl_draw_image.cxx
    +  fl_draw_pixmap.cxx
    +  fl_engraved_label.cxx
    +  fl_file_dir.cxx
    +  fl_font.cxx
    +  fl_labeltype.cxx
    +  fl_line_style.cxx
    +  fl_oval_box.cxx
    +  fl_overlay.cxx
    +  fl_overlay_visual.cxx
    +  fl_plastic.cxx
    +  fl_read_image.cxx
    +  fl_rect.cxx
    +  fl_round_box.cxx
    +  fl_rounded_box.cxx
    +  fl_set_font.cxx
    +  fl_set_fonts.cxx
    +  fl_scroll_area.cxx
    +  fl_shadow_box.cxx
    +  fl_shortcut.cxx
    +  fl_show_colormap.cxx
    +  fl_symbols.cxx
    +  fl_vertex.cxx
    +  )
    +
    +SET(FLCPPFILES
    +  forms_compatability.cxx
    +  forms_bitmap.cxx
    +  forms_free.cxx
    +  forms_fselect.cxx
    +  forms_pixmap.cxx
    +  forms_timer.cxx
    +  )
    +
    +SET(GLCPPFILES
    +  Fl_Gl_Choice.cxx
    +  Fl_Gl_Overlay.cxx
    +  Fl_Gl_Window.cxx
    +  gl_draw.cxx
    +  gl_start.cxx
    +  glut_compatability.cxx
    +  glut_font.cxx
    +  )
    +
    +SET(IMGCPPFILES
    +  fl_images_core.cxx
    +  Fl_BMP_Image.cxx
    +  Fl_File_Icon2.cxx
    +  Fl_GIF_Image.cxx
    +  Fl_Help_Dialog.cxx
    +  Fl_JPEG_Image.cxx
    +  Fl_PNG_Image.cxx
    +  Fl_PNM_Image.cxx
    +  )
    +
    +SET(CFILES 
    +  fl_call_main.c
    +  flstring.c
    +  scandir.c
    +  numericsort.c
    +  vsnprintf.c
    +  )
    +
    +# We need ansi c-flags, especially on HP
    +SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
    +SET(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS})
    +
    +ADD_LIBRARY(fltk ${CPPFILES} ${CFILES})
    +
    +TARGET_LINK_LIBRARIES(fltk ${FLTK_PLATFORM_DEPENDENT_LIBS} ${CMAKE_THREAD_LIBS_INIT})
    +
    +IF(X11_FOUND)
    +  TARGET_LINK_LIBRARIES(fltk ${X11_LIBRARIES})
    +ENDIF(X11_FOUND)
    +
    +IF(OPENGL_FOUND)
    +  ADD_LIBRARY(fltk_gl ${GLCPPFILES})
    +  TARGET_LINK_LIBRARIES(fltk_gl fltk ${OPENGL_LIBRARIES})
    +ENDIF(OPENGL_FOUND)
    +
    +ADD_LIBRARY(fltk_forms ${FLCPPFILES})
    +TARGET_LINK_LIBRARIES(fltk_forms fltk)
    +
    +ADD_LIBRARY(fltk_images ${IMGCPPFILES})
    +TARGET_LINK_LIBRARIES(fltk_images fltk)
    +
    +IF(HAVE_LIBPNG)
    +  TARGET_LINK_LIBRARIES(fltk_images ${PNG_LIBRARIES})
    +ENDIF(HAVE_LIBPNG)
    +
    +IF(HAVE_LIBJPEG)
    +  TARGET_LINK_LIBRARIES(fltk_images ${JPEG_LIBRARIES})
    +ENDIF(HAVE_LIBJPEG) 
    diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
    index c32e2dbdb..6cef50ee1 100644
    --- a/test/CMakeLists.txt
    +++ b/test/CMakeLists.txt
    @@ -1,96 +1,96 @@
    -MACRO(CREATE_EXAMPLE NAME SOURCES LIBRARIES)
    -	SET(srcs)
    -	FOREACH(src ${SOURCES})
    -		IF("${src}" MATCHES ".fl$")
    -			GET_FILENAME_COMPONENT(fname ${src} NAME_WE)
    -			SET(fluid_name "${CMAKE_CURRENT_SOURCE_DIR}/${fname}.fl")
    -			SET(cxx_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
    -			SET(h_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
    -			SET(srcs ${srcs} "${cxx_name}")
    -			ADD_CUSTOM_COMMAND(
    -				OUTPUT ${cxx_name}
    -				DEPENDS ${fluid_name}
    -				COMMAND ${FLUID_COMMAND}
    -				ARGS -c ${fluid_name})
    -			ADD_CUSTOM_COMMAND(
    -				OUTPUT ${h_name}
    -				DEPENDS ${fluid_name}
    -				COMMAND ${FLUID_COMMAND}
    -				ARGS -c ${fluid_name})
    -		ELSE("${src}" MATCHES ".fl$")
    -			SET(srcs ${srcs} ${src})
    -		ENDIF("${src}" MATCHES ".fl$")
    -	ENDFOREACH(src)
    -	ADD_EXECUTABLE(${NAME} ${srcs})
    -	TARGET_LINK_LIBRARIES(${NAME} ${LIBRARIES})
    -ENDMACRO(CREATE_EXAMPLE)
    -
    -INCLUDE_DIRECTORIES(
    -  ${CMAKE_CURRENT_SOURCE_DIR}
    -  ${CMAKE_CURRENT_BINARY_DIR}
    -  )
    -
    -CREATE_EXAMPLE(adjuster adjuster.cxx fltk)
    -CREATE_EXAMPLE(arc arc.cxx fltk)
    -CREATE_EXAMPLE(ask ask.cxx fltk)
    -CREATE_EXAMPLE(bitmap bitmap.cxx fltk)
    -CREATE_EXAMPLE(boxtype boxtype.cxx fltk)
    -CREATE_EXAMPLE(browser browser.cxx fltk)
    -CREATE_EXAMPLE(button button.cxx fltk)
    -CREATE_EXAMPLE(buttons buttons.cxx fltk)
    -CREATE_EXAMPLE(checkers checkers.cxx fltk)
    -CREATE_EXAMPLE(clock clock.cxx fltk)
    -CREATE_EXAMPLE(colbrowser colbrowser.cxx "fltk;fltk_forms")
    -CREATE_EXAMPLE(color_chooser color_chooser.cxx fltk)
    -CREATE_EXAMPLE(cursor cursor.cxx fltk)
    -CREATE_EXAMPLE(curve curve.cxx fltk)
    -CREATE_EXAMPLE(demo demo.cxx "fltk;fltk_forms")
    -CREATE_EXAMPLE(doublebuffer doublebuffer.cxx fltk)
    -CREATE_EXAMPLE(editor editor.cxx fltk)
    -CREATE_EXAMPLE(fast_slow fast_slow.fl fltk)
    -CREATE_EXAMPLE(file_chooser file_chooser.cxx "fltk;fltk_images")
    -CREATE_EXAMPLE(fonts fonts.cxx fltk)
    -CREATE_EXAMPLE(forms forms.cxx "fltk;fltk_forms")
    -CREATE_EXAMPLE(hello hello.cxx fltk)
    -CREATE_EXAMPLE(help help.cxx "fltk;fltk_images")
    -CREATE_EXAMPLE(iconize iconize.cxx fltk)
    -CREATE_EXAMPLE(image image.cxx fltk)
    -CREATE_EXAMPLE(inactive inactive.fl fltk)
    -CREATE_EXAMPLE(input input.cxx fltk)
    -CREATE_EXAMPLE(keyboard "keyboard.cxx;keyboard_ui.fl" fltk)
    -CREATE_EXAMPLE(label label.cxx "fltk;fltk_forms")
    -CREATE_EXAMPLE(line_style line_style.cxx fltk)
    -CREATE_EXAMPLE(list_visuals list_visuals.cxx fltk)
    -CREATE_EXAMPLE(mandelbrot "mandelbrot_ui.fl;mandelbrot.cxx" fltk)
    -CREATE_EXAMPLE(menubar menubar.cxx fltk)
    -CREATE_EXAMPLE(message message.cxx fltk)
    -CREATE_EXAMPLE(minimum minimum.cxx fltk)
    -CREATE_EXAMPLE(navigation navigation.cxx fltk)
    -CREATE_EXAMPLE(output output.cxx "fltk;fltk_forms")
    -CREATE_EXAMPLE(overlay overlay.cxx fltk)
    -CREATE_EXAMPLE(pack pack.cxx fltk)
    -CREATE_EXAMPLE(pixmap pixmap.cxx fltk)
    -CREATE_EXAMPLE(pixmap_browser pixmap_browser.cxx "fltk;fltk_images")
    -CREATE_EXAMPLE(preferences preferences.fl fltk)
    -CREATE_EXAMPLE(radio radio.fl fltk)
    -CREATE_EXAMPLE(resize resize.fl fltk)
    -CREATE_EXAMPLE(resizebox resizebox.cxx fltk)
    -CREATE_EXAMPLE(scroll scroll.cxx fltk)
    -CREATE_EXAMPLE(subwindow subwindow.cxx fltk)
    -CREATE_EXAMPLE(symbols symbols.cxx fltk)
    -CREATE_EXAMPLE(tabs tabs.fl fltk)
    -CREATE_EXAMPLE(threads threads.cxx fltk)
    -CREATE_EXAMPLE(tile tile.cxx fltk)
    -CREATE_EXAMPLE(tiled_image tiled_image.cxx fltk)
    -CREATE_EXAMPLE(valuators valuators.fl fltk)
    -
    -# OpenGL demos...
    -IF(OPENGL_FOUND)
    -CREATE_EXAMPLE(CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk;fltk_gl")
    -CREATE_EXAMPLE(cube cube.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    -CREATE_EXAMPLE(fractals "fractals.cxx;fracviewer.cxx" "fltk;fltk_gl")
    -CREATE_EXAMPLE(fullscreen fullscreen.cxx "fltk;fltk_gl")
    -CREATE_EXAMPLE(glpuzzle glpuzzle.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    -CREATE_EXAMPLE(gl_overlay gl_overlay.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    -CREATE_EXAMPLE(shape shape.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    -ENDIF(OPENGL_FOUND)
    +MACRO(CREATE_EXAMPLE NAME SOURCES LIBRARIES)
    +	SET(srcs)
    +	FOREACH(src ${SOURCES})
    +		IF("${src}" MATCHES ".fl$")
    +			GET_FILENAME_COMPONENT(fname ${src} NAME_WE)
    +			SET(fluid_name "${CMAKE_CURRENT_SOURCE_DIR}/${fname}.fl")
    +			SET(cxx_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
    +			SET(h_name "${CMAKE_CURRENT_BINARY_DIR}/${fname}.cxx")
    +			SET(srcs ${srcs} "${cxx_name}")
    +			ADD_CUSTOM_COMMAND(
    +				OUTPUT ${cxx_name}
    +				DEPENDS ${fluid_name}
    +				COMMAND ${FLUID_COMMAND}
    +				ARGS -c ${fluid_name})
    +			ADD_CUSTOM_COMMAND(
    +				OUTPUT ${h_name}
    +				DEPENDS ${fluid_name}
    +				COMMAND ${FLUID_COMMAND}
    +				ARGS -c ${fluid_name})
    +		ELSE("${src}" MATCHES ".fl$")
    +			SET(srcs ${srcs} ${src})
    +		ENDIF("${src}" MATCHES ".fl$")
    +	ENDFOREACH(src)
    +	ADD_EXECUTABLE(${NAME} ${srcs})
    +	TARGET_LINK_LIBRARIES(${NAME} ${LIBRARIES})
    +ENDMACRO(CREATE_EXAMPLE)
    +
    +INCLUDE_DIRECTORIES(
    +  ${CMAKE_CURRENT_SOURCE_DIR}
    +  ${CMAKE_CURRENT_BINARY_DIR}
    +  )
    +
    +CREATE_EXAMPLE(adjuster adjuster.cxx fltk)
    +CREATE_EXAMPLE(arc arc.cxx fltk)
    +CREATE_EXAMPLE(ask ask.cxx fltk)
    +CREATE_EXAMPLE(bitmap bitmap.cxx fltk)
    +CREATE_EXAMPLE(boxtype boxtype.cxx fltk)
    +CREATE_EXAMPLE(browser browser.cxx fltk)
    +CREATE_EXAMPLE(button button.cxx fltk)
    +CREATE_EXAMPLE(buttons buttons.cxx fltk)
    +CREATE_EXAMPLE(checkers checkers.cxx fltk)
    +CREATE_EXAMPLE(clock clock.cxx fltk)
    +CREATE_EXAMPLE(colbrowser colbrowser.cxx "fltk;fltk_forms")
    +CREATE_EXAMPLE(color_chooser color_chooser.cxx fltk)
    +CREATE_EXAMPLE(cursor cursor.cxx fltk)
    +CREATE_EXAMPLE(curve curve.cxx fltk)
    +CREATE_EXAMPLE(demo demo.cxx "fltk;fltk_forms")
    +CREATE_EXAMPLE(doublebuffer doublebuffer.cxx fltk)
    +CREATE_EXAMPLE(editor editor.cxx fltk)
    +CREATE_EXAMPLE(fast_slow fast_slow.fl fltk)
    +CREATE_EXAMPLE(file_chooser file_chooser.cxx "fltk;fltk_images")
    +CREATE_EXAMPLE(fonts fonts.cxx fltk)
    +CREATE_EXAMPLE(forms forms.cxx "fltk;fltk_forms")
    +CREATE_EXAMPLE(hello hello.cxx fltk)
    +CREATE_EXAMPLE(help help.cxx "fltk;fltk_images")
    +CREATE_EXAMPLE(iconize iconize.cxx fltk)
    +CREATE_EXAMPLE(image image.cxx fltk)
    +CREATE_EXAMPLE(inactive inactive.fl fltk)
    +CREATE_EXAMPLE(input input.cxx fltk)
    +CREATE_EXAMPLE(keyboard "keyboard.cxx;keyboard_ui.fl" fltk)
    +CREATE_EXAMPLE(label label.cxx "fltk;fltk_forms")
    +CREATE_EXAMPLE(line_style line_style.cxx fltk)
    +CREATE_EXAMPLE(list_visuals list_visuals.cxx fltk)
    +CREATE_EXAMPLE(mandelbrot "mandelbrot_ui.fl;mandelbrot.cxx" fltk)
    +CREATE_EXAMPLE(menubar menubar.cxx fltk)
    +CREATE_EXAMPLE(message message.cxx fltk)
    +CREATE_EXAMPLE(minimum minimum.cxx fltk)
    +CREATE_EXAMPLE(navigation navigation.cxx fltk)
    +CREATE_EXAMPLE(output output.cxx "fltk;fltk_forms")
    +CREATE_EXAMPLE(overlay overlay.cxx fltk)
    +CREATE_EXAMPLE(pack pack.cxx fltk)
    +CREATE_EXAMPLE(pixmap pixmap.cxx fltk)
    +CREATE_EXAMPLE(pixmap_browser pixmap_browser.cxx "fltk;fltk_images")
    +CREATE_EXAMPLE(preferences preferences.fl fltk)
    +CREATE_EXAMPLE(radio radio.fl fltk)
    +CREATE_EXAMPLE(resize resize.fl fltk)
    +CREATE_EXAMPLE(resizebox resizebox.cxx fltk)
    +CREATE_EXAMPLE(scroll scroll.cxx fltk)
    +CREATE_EXAMPLE(subwindow subwindow.cxx fltk)
    +CREATE_EXAMPLE(symbols symbols.cxx fltk)
    +CREATE_EXAMPLE(tabs tabs.fl fltk)
    +CREATE_EXAMPLE(threads threads.cxx fltk)
    +CREATE_EXAMPLE(tile tile.cxx fltk)
    +CREATE_EXAMPLE(tiled_image tiled_image.cxx fltk)
    +CREATE_EXAMPLE(valuators valuators.fl fltk)
    +
    +# OpenGL demos...
    +IF(OPENGL_FOUND)
    +CREATE_EXAMPLE(CubeView "CubeMain.cxx;CubeView.cxx;CubeViewUI.fl" "fltk;fltk_gl")
    +CREATE_EXAMPLE(cube cube.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    +CREATE_EXAMPLE(fractals "fractals.cxx;fracviewer.cxx" "fltk;fltk_gl")
    +CREATE_EXAMPLE(fullscreen fullscreen.cxx "fltk;fltk_gl")
    +CREATE_EXAMPLE(glpuzzle glpuzzle.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    +CREATE_EXAMPLE(gl_overlay gl_overlay.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    +CREATE_EXAMPLE(shape shape.cxx "fltk;fltk_gl;${OPENGL_LIBRARIES}")
    +ENDIF(OPENGL_FOUND)
    diff --git a/zlib/CMakeLists.txt b/zlib/CMakeLists.txt
    index 94fa0e254..e96ce848b 100644
    --- a/zlib/CMakeLists.txt
    +++ b/zlib/CMakeLists.txt
    @@ -1,14 +1,14 @@
    -PROJECT(FLTKZLIB)
    -INCLUDE_REGULAR_EXPRESSION("^(deflate|inf|trees|zconf|zlib|zutil).*$")
    -
    -INCLUDE_DIRECTORIES(${FLTKZLIB_SOURCE_DIR})
    -INCLUDE_DIRECTORIES(${FLTKZLIB_BINARY_DIR})
    -
    -# source files for zlib
    -SET(ZLIB_SRCS
    -adler32.c compress.c crc32.c deflate.c gzio.c inffast.c
    -inflate.c inftrees.c trees.c uncompr.c zutil.c
    -)
    -
    -ADD_LIBRARY(fltk_zlib ${ZLIB_SRCS})
    -
    +PROJECT(FLTKZLIB)
    +INCLUDE_REGULAR_EXPRESSION("^(deflate|inf|trees|zconf|zlib|zutil).*$")
    +
    +INCLUDE_DIRECTORIES(${FLTKZLIB_SOURCE_DIR})
    +INCLUDE_DIRECTORIES(${FLTKZLIB_BINARY_DIR})
    +
    +# source files for zlib
    +SET(ZLIB_SRCS
    +adler32.c compress.c crc32.c deflate.c gzio.c inffast.c
    +inflate.c inftrees.c trees.c uncompr.c zutil.c
    +)
    +
    +ADD_LIBRARY(fltk_zlib ${ZLIB_SRCS})
    +