summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2004-09-13 02:12:41 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2004-09-13 02:12:41 +0000
commit1ca225e19da3653cba2cd94543ab3f9019e83f3f (patch)
treedb00798b2765c3d1f9f7cd984519f06565addc24
parent12993c9e4352353960a97882bd057fe3b7b5a32b (diff)
Added (unsupported) CMake files (STR #499)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3829 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--CHANGES1
-rw-r--r--CMake/CheckFunctionWithHeaderExists.cmake54
-rw-r--r--CMake/FLTKConfig.cmake.in32
-rw-r--r--CMake/PlatformTests.cxx81
-rw-r--r--CMakeLists.txt231
-rw-r--r--configh.cmake.in234
-rw-r--r--fluid/CMakeLists.txt25
-rw-r--r--jpeg/CMakeLists.txt35
-rw-r--r--png/CMakeLists.txt28
-rw-r--r--src/CMakeLists.txt189
-rw-r--r--test/CMakeLists.txt96
-rw-r--r--zlib/CMakeLists.txt14
12 files changed, 1020 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index e7eb7c220..c872c8086 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,7 @@ CHANGES IN FLTK 1.1.5rc3
- Documentation updates (STR #505, STR #513)
- Updated PNG library source to 1.2.6 + wutil patch.
- Updated ZLIB library source to 1.2.1.
+ - Added (unsupported) CMake files (STR #499)
- Tooltips would not reappear on the same widget, and
the initial tooltip delay was not used after a tooltip
was shown (STR #465)
diff --git a/CMake/CheckFunctionWithHeaderExists.cmake b/CMake/CheckFunctionWithHeaderExists.cmake
new file mode 100644
index 000000000..7d824cd96
--- /dev/null
+++ b/CMake/CheckFunctionWithHeaderExists.cmake
@@ -0,0 +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)
diff --git a/CMake/FLTKConfig.cmake.in b/CMake/FLTKConfig.cmake.in
new file mode 100644
index 000000000..3f53597cc
--- /dev/null
+++ b/CMake/FLTKConfig.cmake.in
@@ -0,0 +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@")
diff --git a/CMake/PlatformTests.cxx b/CMake/PlatformTests.cxx
new file mode 100644
index 000000000..828a93eb2
--- /dev/null
+++ b/CMake/PlatformTests.cxx
@@ -0,0 +1,81 @@
+#ifdef HAVE_LIBZ
+
+#include <zlib.h>
+
+int main()
+{
+ unsigned long compressedSize = 0;
+ unsigned char cd[100];
+ const unsigned char ud[100] = "";
+ unsigned long uncompressedSize = 0;
+
+ // Call zlib's compress function.
+ if(compress(cd, &compressedSize, ud, uncompressedSize) != Z_OK)
+ {
+ return 0;
+ }
+ return 1;
+}
+
+
+#endif
+
+#ifdef HAVE_LIBJPEG
+
+#include <stdio.h>
+#include <jpeglib.h>
+
+int main()
+{
+ struct jpeg_decompress_struct cinfo;
+ jpeg_create_decompress(&cinfo);
+ jpeg_read_header(&cinfo, TRUE);
+ return 1;
+}
+
+#endif
+
+#ifdef HAVE_LIBPNG
+#include <png.h>
+int main()
+{
+ png_structp png_ptr = png_create_read_struct
+ (PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
+ NULL, NULL);
+ png_infop info_ptr = png_create_info_struct(png_ptr);
+ png_set_sig_bytes(png_ptr, 8);
+ png_read_info(png_ptr, info_ptr);
+
+ return 0;
+}
+#endif
+
+#ifdef HAVE_PNG_H
+#include <png.h>
+int main() { retunr 0;}
+#endif
+
+#ifdef HAVE_PNG_GET_VALID
+#include <png.h>
+int main()
+{
+ png_structp png_ptr = png_create_read_struct
+ (PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
+ NULL, NULL);
+ png_infop info_ptr = png_create_info_struct(png_ptr);
+ png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS);
+ return 0;
+}
+#endif
+
+#ifdef HAVE_PNG_SET_TRNS_TO_ALPHA
+#include <png.h>
+int main()
+{
+ png_structp png_ptr = png_create_read_struct
+ (PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
+ NULL, NULL);
+ png_set_tRNS_to_alpha(png_ptr);
+ return 0;
+}
+#endif
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..496e4c839
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,231 @@
+# 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)
diff --git a/configh.cmake.in b/configh.cmake.in
new file mode 100644
index 000000000..fdd07952e
--- /dev/null
+++ b/configh.cmake.in
@@ -0,0 +1,234 @@
+/*
+ * "$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 <dirent.h> (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 <sys/stdtypes.h> 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 $".
+ */
diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt
new file mode 100644
index 000000000..b63cf569a
--- /dev/null
+++ b/fluid/CMakeLists.txt
@@ -0,0 +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)
diff --git a/jpeg/CMakeLists.txt b/jpeg/CMakeLists.txt
new file mode 100644
index 000000000..03b33f3e6
--- /dev/null
+++ b/jpeg/CMakeLists.txt
@@ -0,0 +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})
+
diff --git a/png/CMakeLists.txt b/png/CMakeLists.txt
new file mode 100644
index 000000000..abb86f9c9
--- /dev/null
+++ b/png/CMakeLists.txt
@@ -0,0 +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)
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 000000000..5c3e6f513
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,189 @@
+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)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
new file mode 100644
index 000000000..c32e2dbdb
--- /dev/null
+++ b/test/CMakeLists.txt
@@ -0,0 +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)
diff --git a/zlib/CMakeLists.txt b/zlib/CMakeLists.txt
new file mode 100644
index 000000000..94fa0e254
--- /dev/null
+++ b/zlib/CMakeLists.txt
@@ -0,0 +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})
+