Index: CMake/FLTKConfig.cmake.in
===================================================================
--- CMake/FLTKConfig.cmake.in	(revision 10324)
+++ CMake/FLTKConfig.cmake.in	(working copy)
@@ -1,49 +1,16 @@
 #
 # 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.
+# This file is generated by CMake and used to load FLTK's settings for an external project.
+# It defines the following variables
+#  FLTK_INCLUDE_DIRS - FLTK include directories
+#  FLTK_LIBRARIES    - list of FLTK libraries built
+#  FLTK_FLUID_EXECUTABLE needed by fltk_wrap_ui()
+#  FLTK_USE_FILE - sets things up to use FLTK
 
-set(FLTK_FOUND TRUE)
 set(FLTK_VERSION @FLTK_VERSION_FULL@)
 
-set(FLTK_FLUID_EXECUTABLE "@FLTK_FLUID_PATH@")
+include(${CMAKE_CURRENT_LIST_DIR}/FLTK-Targets.cmake)
 
-if("@EXE_LINKER_FLAGS@" MATCHES "[-_A-Za-z0-9]+"))
-   set(FLTK_EXE_LINKER_FLAGS "@EXE_LINKER_FLAGS@")
-endif("@EXE_LINKER_FLAGS@" MATCHES "[-_A-Za-z0-9]+")
-
-set(FLTK_USE_FILE "@PREFIX_CONFIG@/UseFLTK.cmake")
-
-set(FLTK_DIR "@PREFIX_CONFIG@")
-
-set(FLTK_BIN_DIR "@PREFIX_BIN@")
-set(FLTK_LIB_DIR "@PREFIX_LIB@")
-set(FLTK_INCLUDE_DIR "@PREFIX_INCLUDE@")
-set(FLTK_DATA_DIR "@PREFIX_DATA@")
-set(FLTK_DOC_DIR "@PREFIX_DOC@")
-
-set(FLTK_SHARED_LIBS_FOUND @OPTION_BUILD_SHARED_LIBS@)
-set(FLTK_CAIRO_FOUND @FLTK_CAIRO_FOUND@)
-set(FLTK_GL_FOUND @FLTK_GL_FOUND@)
-set(FLTK_THREADS_FOUND @FLTK_THREADS_FOUND@)
-set(FLTK_PTHREADS_FOUND @FLTK_PTHREADS_FOUND@)
-set(FLTK_BUILTIN_JPEG_FOUND @FLTK_BUILTIN_JPEG_FOUND@)
-set(FLTK_BUILTIN_ZLIB_FOUND @FLTK_BUILTIN_ZLIB_FOUND@)
-set(FLTK_BUILTIN_PNG_FOUND @FLTK_BUILTIN_PNG_FOUND@)
-set(FLTK_XINERAMA_FOUND @FLTK_XINERAMA_FOUND@)
-set(FLTK_XFT_FOUND @FLTK_XFT_FOUND@)
-set(FLTK_XDBE_FOUND @FLTK_XDBE_FOUND@)
-
-set(FLTK_CAIRO_FOUND @FLTK_CAIRO_FOUND@)
-set(FLTK_GL_FOUND @FLTK_GL_FOUND@)
-set(FLTK_THREADS_FOUND @FLTK_THREADS_FOUND@)
-set(FLTK_PTHREADS_FOUND @FLTK_PTHREADS_FOUND@)
-set(FLTK_BUILTIN_JPEG_FOUND @FLTK_BUILTIN_JPEG_FOUND@)
-set(FLTK_BUILTIN_ZLIB_FOUND @FLTK_BUILTIN_ZLIB_FOUND@)
-set(FLTK_BUILTIN_PNG_FOUND @FLTK_BUILTIN_PNG_FOUND@)
-set(FLTK_XINERAMA_FOUND @FLTK_XINERAMA_FOUND@)
-set(FLTK_XFT_FOUND @FLTK_XFT_FOUND@)
-set(FLTK_XDBE_FOUND @FLTK_XDBE_FOUND@)
-
-include("@PREFIX_CONFIG@/FLTKLibraries.cmake")
+set(FLTK_INCLUDE_DIRS "@INCLUDE_DIRS@")
+set(FLTK_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/UseFLTK.cmake)
Index: CMake/UseFLTK.cmake.in
===================================================================
--- CMake/UseFLTK.cmake.in	(revision 10324)
+++ CMake/UseFLTK.cmake.in	(working copy)
@@ -1,8 +1,25 @@
 #
+# UseFLTK.CMake - FLTK CMake environment configuration file for external projects.
+#
+# This file is generated by CMake and used to set FLTK's environment for an external project.
+#
 # automatically generated - do not edit
 
-include_directories("@PREFIX_INCLUDE@")
+include_directories("@INCLUDE_DIRS@")
 
-if(FLTK_EXE_LINKER_FLAGS)
-   list(APPEND CMAKE_EXE_LINKER_FLAGS "${FLTK_EXE_LINKER_FLAGS}")
-endif(FLTK_EXE_LINKER_FLAGS)
+if(CMAKE_CROSSCOMPILING)
+   find_file(FLUID_PATH
+      NAMES fluid fluid.exe
+      PATHS ENV PATH
+      NO_CMAKE_FIND_ROOT_PATH
+   )
+   add_executable(fluid IMPORTED)
+   set_target_properties(fluid
+      PROPERTIES IMPORTED_LOCATION ${FLUID_PATH}
+   )
+   set(FLTK_FLUID_EXECUTABLE ${FLUID_PATH})
+else()
+   set(FLTK_FLUID_EXECUTABLE fluid)
+endif(CMAKE_CROSSCOMPILING)
+
+set(FLTK_WRAP_UI TRUE)
Index: CMake/export.cmake
===================================================================
--- CMake/export.cmake	(revision 10324)
+++ CMake/export.cmake	(working copy)
@@ -29,30 +29,35 @@
    )
    add_executable(fluid IMPORTED)
    set(FLTK_FLUID_EXECUTABLE ${FLUID_PATH})
-   set(FLTK_FLUID_PATH ${FLUID_PATH})
+   set(FLUID)       # no export
    set_target_properties(fluid
       PROPERTIES IMPORTED_LOCATION ${FLUID_PATH}
    )
 else()
    add_subdirectory(fluid)
    set(FLTK_FLUID_EXECUTABLE fluid)
-   set(FLTK_FLUID_PATH ${PREFIX_BIN}/fluid)
+   set(FLUID fluid) # export
 endif(CMAKE_CROSSCOMPILING)
 
 add_subdirectory(src)
 
-# generate FLTKConfig.cmake
-string(REPLACE ";" " " EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+# generate FLTK-Targets.cmake for build directory use
+export(TARGETS ${FLUID} ${FLTK_LIBRARIES} FILE ${CMAKE_BINARY_DIR}/FLTK-Targets.cmake)
+
+# generate FLTKConfig.cmake for build directory use
+set(INCLUDE_DIRS "@FLTK_INCLUDE_DIRS@")
+set(CONFIG_PATH @FLTK_BINARY_DIR@)
+
 configure_file(
    ${FLTK_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
-   ${EXECUTABLE_OUTPUT_PATH}/FLTKConfig.cmake
+   ${FLTK_BINARY_DIR}/FLTKConfig.cmake
    @ONLY
 )
 
-# generate UseFLTK.cmake
+# generate UseFLTK.cmake for build directory use
 configure_file(
    ${FLTK_SOURCE_DIR}/CMake/UseFLTK.cmake.in
-   ${EXECUTABLE_OUTPUT_PATH}/UseFLTK.cmake
+   ${FLTK_BINARY_DIR}/UseFLTK.cmake
    @ONLY
 )
 
@@ -92,4 +97,3 @@
       @ONLY
    )
 endif(OPTION_CREATE_LINKS)
-#
Index: CMake/install.cmake
===================================================================
--- CMake/install.cmake	(revision 10324)
+++ CMake/install.cmake	(working copy)
@@ -32,7 +32,7 @@
 )
 
 install(DIRECTORY ${FLTK_SOURCE_DIR}/FL
-   DESTINATION ${PREFIX_INCLUDE} USE_SOURCE_PERMISSIONS
+   DESTINATION include USE_SOURCE_PERMISSIONS
    PATTERN ".svn" EXCLUDE
 )
 
@@ -40,29 +40,41 @@
    install(SCRIPT ${FLTK_BINARY_DIR}/install-symlinks.cmake)
 endif(OPTION_CREATE_LINKS)
 
-install(PROGRAMS ${FLTK_BINARY_DIR}/fltk-config
-   DESTINATION ${PREFIX_BIN}
-   OPTIONAL
+# generate FLTKConfig.cmake for installed directory use
+set(INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include)
+
+set(CONFIG_PATH ${CMAKE_INSTALL_PREFIX}/@FLTK_CONFIG_PATH@)
+
+install(EXPORT FLTK-Targets
+   DESTINATION ${FLTK_CONFIG_PATH}
+   FILE FLTK-Targets.cmake
 )
 
-install(EXPORT fltk-install
-   DESTINATION ${PREFIX_CONFIG}
-   FILE FLTKLibraries.cmake
+configure_file(
+   ${FLTK_SOURCE_DIR}/CMake/FLTKConfig.cmake.in
+   ${FLTK_BINARY_DIR}/etc/FLTKConfig.cmake
+   @ONLY
 )
 
-install(FILES ${EXECUTABLE_OUTPUT_PATH}/FLTKConfig.cmake
-   DESTINATION ${PREFIX_CONFIG}
+install(FILES ${FLTK_BINARY_DIR}/etc/FLTKConfig.cmake
+   DESTINATION ${FLTK_CONFIG_PATH}
 )
 
-install(FILES ${EXECUTABLE_OUTPUT_PATH}/UseFLTK.cmake
-   DESTINATION ${PREFIX_CONFIG}
+configure_file(
+   ${FLTK_SOURCE_DIR}/CMake/UseFLTK.cmake.in
+   ${FLTK_BINARY_DIR}/etc/UseFLTK.cmake
+   @ONLY
 )
 
-if(CMAKE_HOST_UNIX)
+install(FILES ${FLTK_BINARY_DIR}/etc/UseFLTK.cmake
+   DESTINATION ${FLTK_CONFIG_PATH}
+)
+
+if(UNIX)
    macro(INSTALL_MAN FILE LEVEL)
    install(FILES
       ${FLTK_SOURCE_DIR}/documentation/src/${FILE}.man
-      DESTINATION ${PREFIX_MAN}/man${LEVEL}
+      DESTINATION man/man${LEVEL}
       RENAME ${FILE}.${LEVEL}
    )
    endmacro(INSTALL_MAN FILE LEVEL)
@@ -74,4 +86,4 @@
    INSTALL_MAN(checkers 6)
    INSTALL_MAN(sudoku 6)
 
-endif(CMAKE_HOST_UNIX)
+endif(UNIX)
Index: CMake/options.cmake
===================================================================
--- CMake/options.cmake	(revision 10324)
+++ CMake/options.cmake	(working copy)
@@ -34,114 +34,24 @@
 add_definitions(${OPTION_ARCHFLAGS})
 
 #######################################################################
-set(OPTION_PREFIX_BIN ""
-   CACHE STRING
-   "where to install executables - leave empty to use {CMAKE_INSTALL_PREFIX}/bin"
-   )
-
-if(OPTION_PREFIX_BIN)
-   set(PREFIX_BIN ${OPTION_PREFIX_BIN} CACHE INTERNAL "" FORCE)
-else()
-   set(PREFIX_BIN ${CMAKE_INSTALL_PREFIX}/bin CACHE INTERNAL "" FORCE)
-endif(OPTION_PREFIX_BIN)
-
 #######################################################################
-set(OPTION_PREFIX_LIB ""
-   CACHE STRING
-   "where to install libraries - leave empty to use {CMAKE_INSTALL_PREFIX}/lib"
-   )
-
-if(OPTION_PREFIX_LIB)
-   set(PREFIX_LIB ${OPTION_PREFIX_LIB} CACHE INTERNAL "" FORCE)
-else()
-   set(PREFIX_LIB ${CMAKE_INSTALL_PREFIX}/lib CACHE INTERNAL "" FORCE)
-endif(OPTION_PREFIX_LIB)
-
-#######################################################################
-set(OPTION_PREFIX_INCLUDE ""
-   CACHE STRING
-   "where to install include files - leave empty to use {CMAKE_INSTALL_PREFIX}/include"
-   )
-
-if(OPTION_PREFIX_INCLUDE)
-   set(PREFIX_INCLUDE ${OPTION_PREFIX_INCLUDE} CACHE INTERNAL "" FORCE)
-else()
-   set(PREFIX_INCLUDE ${CMAKE_INSTALL_PREFIX}/include CACHE INTERNAL "" FORCE)
-endif(OPTION_PREFIX_INCLUDE)
-
-#######################################################################
-set(OPTION_PREFIX_DATA ""
-   CACHE STRING
-   "where to install data files - leave empty to use {CMAKE_INSTALL_PREFIX}/share/FLTK"
-   )
-
-if(OPTION_PREFIX_DATA)
-   set(PREFIX_DATA ${OPTION_PREFIX_DATA} CACHE INTERNAL "" FORCE)
-else()
-   set(PREFIX_DATA ${CMAKE_INSTALL_PREFIX}/share/FLTK CACHE INTERNAL "" FORCE)
-endif(OPTION_PREFIX_DATA)
-
-#######################################################################
-set(OPTION_PREFIX_DOC ""
-   CACHE STRING
-   "where to install doc files - leave empty to use {CMAKE_INSTALL_PREFIX}/share/doc/FLTK"
-   )
-
-if(OPTION_PREFIX_DOC)
-   set(PREFIX_DOC ${OPTION_PREFIX_DOC} CACHE INTERNAL "" FORCE)
-else()
-   set(PREFIX_DOC ${CMAKE_INSTALL_PREFIX}/share/doc/FLTK CACHE INTERNAL "" FORCE)
-endif(OPTION_PREFIX_DOC)
-
-#######################################################################
-if(WIN32)
-   set(DEFAULT_CONFIG "${CMAKE_INSTALL_PREFIX}/CMake")
-elseif(APPLE)
-   set(DEFAULT_CONFIG "${CMAKE_INSTALL_PREFIX}/FLTK/.framework/Resources/CMake")
-else()
-   set(DEFAULT_CONFIG "${CMAKE_INSTALL_PREFIX}/lib/FLTK-${FLTK_VERSION}")
-endif(WIN32)
-
-set(OPTION_PREFIX_CONFIG ""
-   CACHE STRING
-   "where to install CMake config files - leave empty to use ${DEFAULT_CONFIG}"
-   )
-
-if(OPTION_PREFIX_CONFIG)
-   set(PREFIX_CONFIG "${OPTION_PREFIX_CONFIG}" CACHE INTERNAL "" FORCE)
-else()
-   set(PREFIX_CONFIG "${DEFAULT_CONFIG}" CACHE INTERNAL "" FORCE)
-endif(OPTION_PREFIX_CONFIG)
-
-#######################################################################
-if(CMAKE_HOST_UNIX)
-   set(OPTION_PREFIX_MAN ""
-      CACHE STRING
-      "where to install man files - leave empty to use {CMAKE_INSTALL_PREFIX}/man"
-      )
-
-   if(OPTION_PREFIX_MAN)
-      set(PREFIX_MAN ${OPTION_PREFIX_MAN} CACHE INTERNAL "" FORCE)
-   else()
-      set(PREFIX_MAN ${CMAKE_INSTALL_PREFIX}/man CACHE INTERNAL "" FORCE)
-   endif(OPTION_PREFIX_MAN)
-
+if(UNIX)
    option(OPTION_CREATE_LINKS "create backwards compatibility links" OFF)
-endif(CMAKE_HOST_UNIX)
+endif(UNIX)
 
 #######################################################################
-if(APPLE)
+if(__APPLE__)
    option(OPTION_APPLE_X11 "use X11" OFF)
-endif(APPLE)
+endif(__APPLE__)
 
-if(NOT APPLE OR OPTION_APPLE_X11)
+if((NOT APPLE OR OPTION_APPLE_X11) AND NOT WIN32)
    include(FindX11)
    if(X11_FOUND)
       set(USE_X11 1)
       list(APPEND FLTK_CFLAGS -DUSE_X11)
       list(APPEND FLTK_LDLIBS -lX11)
    endif(X11_FOUND)
-endif(NOT APPLE OR OPTION_APPLE_X11)
+endif((NOT APPLE OR OPTION_APPLE_X11) AND NOT WIN32)
 
 #######################################################################
 option(OPTION_USE_POLL "use poll if available" OFF)
@@ -151,7 +61,10 @@
 endif(OPTION_USE_POLL)
 
 #######################################################################
-option(OPTION_BUILD_SHARED_LIBS "Build shared libraries" OFF)
+option(OPTION_BUILD_SHARED_LIBS
+    "Build shared libraries(in addition to static libraries)"
+    OFF
+    )
 
 #######################################################################
 option(OPTION_BUILD_EXAMPLES "build example programs" ON)
@@ -241,30 +154,6 @@
 endif(OPTION_LARGE_FILE)
 
 #######################################################################
-option(OPTION_USE_SYSTEM_LIBJPEG "Use's system libjpeg" ON)
-
-if(OPTION_USE_SYSTEM_LIBJPEG AND LIB_jpeg)
-   include(FindJPEG)
-endif(OPTION_USE_SYSTEM_LIBJPEG AND LIB_jpeg)
-
-if(OPTION_USE_SYSTEM_LIBJPEG AND JPEG_FOUND)
-   set(FLTK_JPEG_LIBRARIES ${JPEG_LIBRARIES})
-   include_directories(${JPEG_INCLUDE_DIR})
-   set(FLTK_BUILTIN_JPEG_FOUND FALSE)
-else()
-   add_subdirectory(jpeg)
-   set(FLTK_JPEG_LIBRARIES fltk_jpeg)
-   include_directories(${FLTK_SOURCE_DIR}/jpeg)
-   set(FLTK_BUILTIN_JPEG_FOUND TRUE)
-endif(OPTION_USE_SYSTEM_LIBJPEG AND JPEG_FOUND)
-
-if(OPTION_USE_SYSTEM_LIBJPEG AND NOT JPEG_FOUND)
-   message(STATUS "\ncannot find system jpeg library - using built-in\n")
-endif(OPTION_USE_SYSTEM_LIBJPEG AND NOT JPEG_FOUND)
-
-set(HAVE_LIBJPEG 1)
-
-#######################################################################
 option(OPTION_USE_SYSTEM_ZLIB "Use's system zlib" ON)
 
 if(OPTION_USE_SYSTEM_ZLIB AND LIB_zlib)
@@ -290,6 +179,30 @@
 set(HAVE_LIBZ 1)
 
 #######################################################################
+option(OPTION_USE_SYSTEM_LIBJPEG "Use's system libjpeg" ON)
+
+if(OPTION_USE_SYSTEM_LIBJPEG AND LIB_jpeg)
+   include(FindJPEG)
+endif(OPTION_USE_SYSTEM_LIBJPEG AND LIB_jpeg)
+
+if(OPTION_USE_SYSTEM_LIBJPEG AND JPEG_FOUND)
+   set(FLTK_JPEG_LIBRARIES ${JPEG_LIBRARIES})
+   include_directories(${JPEG_INCLUDE_DIR})
+   set(FLTK_BUILTIN_JPEG_FOUND FALSE)
+else()
+   add_subdirectory(jpeg)
+   set(FLTK_JPEG_LIBRARIES fltk_jpeg)
+   include_directories(${FLTK_SOURCE_DIR}/jpeg)
+   set(FLTK_BUILTIN_JPEG_FOUND TRUE)
+endif(OPTION_USE_SYSTEM_LIBJPEG AND JPEG_FOUND)
+
+if(OPTION_USE_SYSTEM_LIBJPEG AND NOT JPEG_FOUND)
+   message(STATUS "\ncannot find system jpeg library - using built-in\n")
+endif(OPTION_USE_SYSTEM_LIBJPEG AND NOT JPEG_FOUND)
+
+set(HAVE_LIBJPEG 1)
+
+#######################################################################
 option(OPTION_USE_SYSTEM_LIBPNG "Use's system libpng" ON)
 
 if(OPTION_USE_SYSTEM_LIBPNG AND LIB_png)
Index: CMake/setup.cmake
===================================================================
--- CMake/setup.cmake	(revision 10324)
+++ CMake/setup.cmake	(working copy)
@@ -34,16 +34,38 @@
 # Search for modules in the FLTK source dir first
 set(CMAKE_MODULE_PATH "${FLTK_SOURCE_DIR}/CMake")
 
-include_directories(${FLTK_BINARY_DIR} ${FLTK_SOURCE_DIR})
+set(FLTK_INCLUDE_DIRS ${FLTK_BINARY_DIR} ${FLTK_SOURCE_DIR})
+include_directories(${FLTK_INCLUDE_DIRS})
 
 #######################################################################
 # platform dependent information
 #######################################################################
 
+# fix no WIN32 defined issue
+if(NOT WIN32)
+    if(_WIN32)
+        set(WIN32 _WIN32)
+    elseif(__WIN32__)
+        set(WIN32 __WIN32__)
+    endif(_WIN32)
+endif(NOT WIN32)
+
+# set where config and example files go
+if(WIN32 AND NOT CYGWIN)
+   set(FLTK_CONFIG_PATH CMake)
+   set(FLTK_EXAMPLES_PATH bin/fltk-examples)
+elseif(__APPLE__)
+   set(FLTK_CONFIG_PATH FLTK/.framework/Resources/CMake)
+   set(FLTK_EXAMPLES_PATH share/fltk-examples)
+else()
+   set(FLTK_CONFIG_PATH lib/fltk)
+   set(FLTK_EXAMPLES_PATH share/fltk-examples)
+endif(WIN32 AND NOT CYGWIN)
+
 include(TestBigEndian)
 TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
 
-if(APPLE)
+if(__APPLE__)
    set(__APPLE_QUARTZ__ 1)
    set(HAVE_STRTOLL 1)
    set(HAVE_STRCASECMP 1)
@@ -54,19 +76,22 @@
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework Cocoa")
-endif(APPLE)
+endif(__APPLE__)
 
 if(WIN32)
-   if(MSVC)
-      add_definitions(-DWIN32_LEAN_AND_MEAN)
-      add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-   endif(MSVC)
-   if(CMAKE_C_COMPILER_ID STREQUAL GNU)
-      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
-   endif(CMAKE_C_COMPILER_ID STREQUAL GNU)
-   if(MINGW AND EXISTS /mingw)
-      list(APPEND CMAKE_PREFIX_PATH /mingw)
-   endif(MINGW AND EXISTS /mingw)
+    if(MSVC)
+        add_definitions(-DWIN32_LEAN_AND_MEAN)
+        add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+######## from ide/VisualC2010/config.h
+        set(BORDER_WIDTH 2)
+########
+    endif(MSVC)
+    if(CMAKE_C_COMPILER_ID STREQUAL GNU)
+        set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-subsystem,windows")
+    endif(CMAKE_C_COMPILER_ID STREQUAL GNU)
+    if(MINGW AND EXISTS /mingw)
+        list(APPEND CMAKE_PREFIX_PATH /mingw)
+    endif(MINGW AND EXISTS /mingw)
 endif(WIN32)
 
 #######################################################################
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 10324)
+++ CMakeLists.txt	(working copy)
@@ -18,9 +18,14 @@
 #
 
 project(FLTK)
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.6)
 
 #######################################################################
+# define some macros
+#######################################################################
+include(CMake/macros.cmake)
+
+#######################################################################
 # basic setup
 #######################################################################
 include(CMake/setup.cmake)
Index: README.CMake.txt
===================================================================
--- README.CMake.txt	(revision 10324)
+++ README.CMake.txt	(working copy)
@@ -98,16 +98,6 @@
 OPTION_ARCHFLAGS
    Extra architecture flags.
 
-OPTION_PREFIX_BIN
-OPTION_PREFIX_LIB
-OPTION_PREFIX_INCLUDE
-OPTION_PREFIX_DATA
-OPTION_PREFIX_DOC
-OPTION_PREFIX_CONFIG
-OPTION_PREFIX_MAN
-   The OPTION_PREFIX_* flags are for fine-tuning where everything goes
-   on the install.
-
 OPTION_APPLE_X11 - default OFF
    In case you want to use X11 on OSX.  Not currently supported.
 
@@ -218,6 +208,11 @@
  USING CMAKE WITH FLTK
 =======================
 
+The CMake Export/Import facility can be thought of as an automated 
+fltk-config.  For example, if you link your program to the fltk
+library, it will automatically link in all of its dependencies.  This 
+includes any special flags.  ie on Linux it includes the -lpthread flag.
+
 This howto assumes that you have FLTK libraries which were built using
 CMake, installed.  Building them with CMake generates some CMake helper
 files which are installed in standard locations, making FLTK easy to find
@@ -231,6 +226,12 @@
 
 project(hello)
 
+# the following line is required only if you don't install FLTK
+# or if find_package can't find your installation directory
+# it points to the build directory or the base folder, 
+# not the library folder.
+set(FLTK_DIR /path/to/fltk)
+
 find_package(FLTK REQUIRED NO_MODULE)
 include(${FLTK_USE_FILE})
 
@@ -240,21 +241,20 @@
 
 ------
 
+The set(FLTK_DIR ...) command is a superhint to the find_package command.
+This is very useful if you don't install or have a non-standard install.
 The find_package command tells CMake to find the package FLTK, REQUIRED
 means that it is an error if it's not found.  NO_MODULE tells it to search
 only for the FLTKConfig file, not using the FindFLTK.cmake supplied with
 CMake, which doesn't work with this version of FLTK.
 
 Once the package is found we include the ${FLTK_USE_FILE} which adds the
-FLTK include directories and library link information to its knowledge
-base.  After that your programs will be able to find FLTK headers and
-when you link the fltk library, it automatically links the libraries
-fltk depends on.
+FLTK include directories to its knowledge base.  After that your programs 
+will be able to find FLTK headers.
 
 The WIN32 in the add_executable tells your Windows compiler that this is
 a gui app.  It is ignored on other platforms.
 
-
  LIBRARY NAMES
 ---------------
 
@@ -301,3 +301,4 @@
 
 Dec 20 2010 - matt: merged and restructures
 May 15 2013 - erco: small formatting tweaks, added some examples
+Feb 23 2014 - msurette: updated to reflect changes to the CMake files
Index: cairo/CMakeLists.txt
===================================================================
--- cairo/CMakeLists.txt	(revision 10324)
+++ cairo/CMakeLists.txt	(working copy)
@@ -1,27 +1,17 @@
-project(FLTKcairo)
 
-include_directories(${FLTKcairo_SOURCE_DIR})
-include_directories(${FLTKcairo_BINARY_DIR})
 include_directories(${PKG_CAIRO_INCLUDE_DIRS})
 
 # source files for cairo
 set(cairo_SRCS Fl_Cairo.cxx)
 
 #######################################################################
-add_library(fltk_cairo ${cairo_SRCS})
+FL_ADD_LIBRARY(fltk_cairo STATIC "${cairo_SRCS}")
 
-if(MSVC)
-   set_target_properties(fltk_cairo
-      PROPERTIES
-         OUTPUT_NAME fltkcairo
-         DEBUG_OUTPUT_NAME fltkcairod
-   )
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_cairo PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
-endif(MSVC)
+#######################################################################
+if(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
+FL_ADD_LIBRARY(fltk_cairo SHARED "${cairo_SRCS}")
 
-install(TARGETS fltk_cairo
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_LIB}
-)
+#######################################################################
+endif(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
Index: fluid/CMakeLists.txt
===================================================================
--- fluid/CMakeLists.txt	(revision 10324)
+++ fluid/CMakeLists.txt	(working copy)
@@ -1,39 +1,30 @@
 
 set(CPPFILES
-	CodeEditor.cxx
-	Fl_Function_Type.cxx
-	Fl_Group_Type.cxx
-	Fl_Menu_Type.cxx
-	Fl_Type.cxx
-	Fl_Widget_Type.cxx
-	Fl_Window_Type.cxx
-	Fluid_Image.cxx
-	about_panel.cxx
-	align_widget.cxx
-	alignment_panel.cxx
-	code.cxx
-	factory.cxx
-	file.cxx
-	fluid.cxx
-	function_panel.cxx
-	template_panel.cxx
-	undo.cxx
-	widget_panel.cxx
+    CodeEditor.cxx
+    Fl_Function_Type.cxx
+    Fl_Group_Type.cxx
+    Fl_Menu_Type.cxx
+    Fl_Type.cxx
+    Fl_Widget_Type.cxx
+    Fl_Window_Type.cxx
+    Fluid_Image.cxx
+    about_panel.cxx
+    align_widget.cxx
+    alignment_panel.cxx
+    code.cxx
+    factory.cxx
+    file.cxx
+    fluid.cxx
+    function_panel.cxx
+    template_panel.cxx
+    undo.cxx
+    widget_panel.cxx
 )
 
 add_executable(fluid ${CPPFILES})
 target_link_libraries(fluid fltk fltk_images fltk_forms)
 
 # link in optional libraries
-if(FLTK_HAVE_CAIRO)
-   target_link_libraries(fluid fltk_cairo)
-endif(FLTK_HAVE_CAIRO)
-
-if(FLTK_USE_GL)
-   target_link_libraries(fluid fltk_gl)
-   target_link_libraries(fluid ${OPENGL_LIBRARIES})
-endif(FLTK_USE_GL)
-
 if(USE_XFT)
    target_link_libraries(fluid ${X11_Xft_LIB})
 endif(USE_XFT)
@@ -43,6 +34,8 @@
 endif(HAVE_XINERAMA)
 
 install(TARGETS fluid
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_BIN}
-)
+    EXPORT FLTK-Targets
+    RUNTIME DESTINATION bin
+    LIBRARY DESTINATION lib
+    ARCHIVE DESTINATION lib
+    )
Index: jpeg/CMakeLists.txt
===================================================================
--- jpeg/CMakeLists.txt	(revision 10324)
+++ jpeg/CMakeLists.txt	(working copy)
@@ -1,10 +1,4 @@
-project(FLTKJPEG)
 
-include_regular_expression("^j.*[.][c|h]$")
-
-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.)
@@ -31,21 +25,16 @@
    jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c
 )
 
+list(APPEND BUILD_SRCS "${systemdependent_SRCS};${common_SRCS}")
+list(APPEND BUILD_SRCS "${compression_SRCS};${decompression_SRCS}")
 #######################################################################
-add_library(fltk_jpeg ${systemdependent_SRCS} ${common_SRCS} ${compression_SRCS} ${decompression_SRCS})
+FL_ADD_LIBRARY(fltk_jpeg STATIC "${BUILD_SRCS}")
 
-if(MSVC)
-   set_target_properties(fltk_jpeg
-      PROPERTIES
-         OUTPUT_NAME fltkjpeg
-         DEBUG_OUTPUT_NAME fltkjpegd
-   )
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_jpeg PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
-endif(MSVC)
+#######################################################################
+if(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
+FL_ADD_LIBRARY(fltk_jpeg SHARED "${BUILD_SRCS}")
 
-install(TARGETS fltk_jpeg
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_LIB}
-)
+#######################################################################
+endif(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
Index: png/CMakeLists.txt
===================================================================
--- png/CMakeLists.txt	(revision 10324)
+++ png/CMakeLists.txt	(working copy)
@@ -1,12 +1,4 @@
-project(FLTKPNG)
-include_regular_expression("^png.*[.][c|h]$")
 
-include_directories(${FLTKZLIB_SOURCE_DIR})
-include_directories(${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
@@ -16,20 +8,25 @@
 )
 
 #######################################################################
-add_library(fltk_png ${PNG_SRCS})
+FL_ADD_LIBRARY(fltk_png STATIC "${PNG_SRCS}")
 
-if(MSVC)
-   set_target_properties(fltk_png PROPERTIES OUTPUT_NAME fltkpng)
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_png PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
+if(OPTION_USE_SYSTEM_ZLIB)
+    target_link_libraries(fltk_png ${FLTK_ZLIB_LIBRARIES})
 else()
-   set_target_properties(fltk_png PROPERTIES OUTPUT_NAME fltk_png)
-endif(MSVC)
+    target_link_libraries(fltk_png fltk_z)
+endif(OPTION_USE_SYSTEM_ZLIB)
 
-target_link_libraries(fltk_png ${FLTK_ZLIB_LIBRARIES})
+#######################################################################
+if(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
+FL_ADD_LIBRARY(fltk_png SHARED "${PNG_SRCS}")
 
-install(TARGETS fltk_png
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_LIB}
-)
+if(OPTION_USE_SYSTEM_ZLIB)
+    target_link_libraries(fltk_png_SHARED ${FLTK_ZLIB_LIBRARIES})
+else()
+    target_link_libraries(fltk_png_SHARED fltk_z_SHARED)
+endif(OPTION_USE_SYSTEM_ZLIB)
+
+#######################################################################
+endif(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
Index: src/CMakeLists.txt
===================================================================
--- src/CMakeLists.txt	(revision 10324)
+++ src/CMakeLists.txt	(working copy)
@@ -1,4 +1,3 @@
-include_regular_expression("[.][cxx|c|h]$")
 
 set(CPPFILES
   Fl.cxx
@@ -19,6 +18,7 @@
   Fl_Counter.cxx
   Fl_Device.cxx
   Fl_Dial.cxx
+  Fl_Help_Dialog_Dox.cxx
   Fl_Double_Window.cxx
   Fl_File_Browser.cxx
   Fl_File_Chooser.cxx
@@ -199,31 +199,20 @@
 )
 
 add_definitions(-DFL_LIBRARY)
-if(APPLE)
-	set(MMFILES
-		Fl_cocoa.mm
-		Fl_Quartz_Printer.mm
-		Fl_Native_File_Chooser_MAC.mm
-		Fl_Sys_Menu_Bar.mm
-		)
+if(__APPLE__)
+    set(MMFILES
+        Fl_cocoa.mm
+        Fl_Quartz_Printer.mm
+        Fl_Native_File_Chooser_MAC.mm
+        Fl_Sys_Menu_Bar.mm
+        )
 else()
    set(MMFILES
       )
-endif(APPLE)
+endif(__APPLE__)
 
 #######################################################################
-add_library(fltk STATIC ${CPPFILES} ${MMFILES} ${CFILES} fl_call_main.c)
-set_target_properties(fltk PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-if(MSVC)
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif()
-   set_target_properties(fltk
-      PROPERTIES
-         OUTPUT_NAME fltk
-         DEBUG_OUTPUT_NAME fltkd
-   )
-endif(MSVC)
+FL_ADD_LIBRARY(fltk STATIC "${CPPFILES};${MMFILES};${CFILES};fl_call_main.c")
 
 if(USE_THREADS)
    target_link_libraries(fltk ${CMAKE_THREAD_LIBS_INIT} ${LIB_dl})
@@ -261,64 +250,36 @@
 endif(USE_XFT)
 
 #######################################################################
-add_library(fltk_forms STATIC ${FLCPPFILES})
+FL_ADD_LIBRARY(fltk_forms STATIC "${FLCPPFILES}")
 target_link_libraries(fltk_forms fltk)
-set_target_properties(fltk_forms
-   PROPERTIES CLEAN_DIRECT_OUTPUT 1
-)
-if(MSVC)
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_forms PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif()
-   set_target_properties(fltk_forms
-      PROPERTIES
-         OUTPUT_NAME fltkforms
-         DEBUG_OUTPUT_NAME fltkformsd
-   )
-endif(MSVC)
 
 #######################################################################
-add_library(fltk_images STATIC ${IMGCPPFILES})
+FL_ADD_LIBRARY(fltk_images STATIC "${IMGCPPFILES}")
 target_link_libraries(fltk_images fltk ${FLTK_PNG_LIBRARIES}
      ${FLTK_JPEG_LIBRARIES} ${FLTK_ZLIB_LIBRARIES})
-set_target_properties(fltk_images PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-if(MSVC)
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_images PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif()
-   set_target_properties(fltk_images
-      PROPERTIES
-         OUTPUT_NAME fltkimages
-         DEBUG_OUTPUT_NAME fltkimagesd
-   )
-endif(MSVC)
 
-#######################################################################
-install(TARGETS fltk fltk_forms fltk_images
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_LIB}
-)
+if(OPTION_USE_SYSTEM_LIBJPEG)
+    target_link_libraries(fltk_images ${FLTK_JPEG_LIBRARIES})
+else()
+    target_link_libraries(fltk_images fltk_jpeg)
+endif(OPTION_USE_SYSTEM_LIBJPEG)
 
+if(OPTION_USE_SYSTEM_ZLIB)
+    target_link_libraries(fltk_images ${FLTK_ZLIB_LIBRARIES})
+else()
+    target_link_libraries(fltk_images fltk_z)
+endif(OPTION_USE_SYSTEM_ZLIB)
+
+if(OPTION_USE_SYSTEM_LIBPNG)
+    target_link_libraries(fltk_images ${FLTK_PNG_LIBRARIES})
+else()
+    target_link_libraries(fltk_images fltk_png)
+endif(OPTION_USE_SYSTEM_LIBPNG)
+
 #######################################################################
 if(OPENGL_FOUND)
-   add_library(fltk_gl STATIC ${GLCPPFILES})
+   FL_ADD_LIBRARY(fltk_gl STATIC "${GLCPPFILES}")
    target_link_libraries(fltk_gl fltk ${OPENGL_LIBRARIES})
-   set_target_properties(fltk_gl PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-   if(MSVC)
-      if(OPTION_LARGE_FILE)
-         set_target_properties(fltk_gl PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-      endif()
-      set_target_properties(fltk_gl
-         PROPERTIES
-            OUTPUT_NAME fltkgl
-            DEBUG_OUTPUT_NAME fltkgld
-      )
-   endif(MSVC)
-
-   install(TARGETS fltk_gl
-      EXPORT fltk-install
-      DESTINATION ${PREFIX_LIB}
-   )
 endif(OPENGL_FOUND)
 
 #######################################################################
@@ -326,25 +287,7 @@
 if(OPTION_BUILD_SHARED_LIBS)
 
 #######################################################################
-add_library(fltk_SHARED SHARED ${CPPFILES} ${MMFILES} ${CFILES})
-set_target_properties(fltk_SHARED
-   PROPERTIES CLEAN_DIRECT_OUTPUT 1
-   VERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
-   SOVERSION ${FLTK_VERSION_PATCH}
-)
-if(MSVC)
-   set_target_properties(fltk_SHARED
-      PROPERTIES
-         OUTPUT_NAME fltkdll
-         DEBUG_OUTPUT_NAME fltkdlld
-         COMPILE_DEFINITIONS "FL_DLL;FL_LIBRARY"
-   )
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_SHARED PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
-else()
-   set_target_properties(fltk_SHARED PROPERTIES OUTPUT_NAME fltk)
-endif(MSVC)
+FL_ADD_LIBRARY(fltk SHARED "${CPPFILES};${MMFILES};${CFILES}")
 
 if(USE_THREADS)
    target_link_libraries(fltk_SHARED ${CMAKE_THREAD_LIBS_INIT} ${LIB_dl})
@@ -359,7 +302,7 @@
 endif(WIN32)
 
 if(FLTK_HAVE_CAIRO)
-   target_link_libraries(fltk_SHARED fltk_cairo ${PKG_CAIRO_LIBRARIES})
+   target_link_libraries(fltk_SHARED fltk_cairo_SHARED ${PKG_CAIRO_LIBRARIES})
 ENDif(FLTK_HAVE_CAIRO)
 
 if(HAVE_XINERAMA)
@@ -374,26 +317,8 @@
 endif(USE_XFT)
 
 #######################################################################
-add_library(fltk_forms_SHARED SHARED ${FLCPPFILES})
+FL_ADD_LIBRARY(fltk_forms SHARED "${FLCPPFILES}")
 target_link_libraries(fltk_forms_SHARED fltk_SHARED)
-set_target_properties(fltk_forms_SHARED
-   PROPERTIES CLEAN_DIRECT_OUTPUT 1
-   VERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
-   SOVERSION ${FLTK_VERSION_PATCH}
-)
-if(MSVC)
-   set_target_properties(fltk_forms_SHARED
-      PROPERTIES
-         OUTPUT_NAME fltkformsdll
-         DEBUG_OUTPUT_NAME fltkformsdlld
-         COMPILE_DEFINITIONS "FL_DLL;FL_LIBRARY"
-   )
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_forms_SHARED PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
-else()
-   set_target_properties(fltk_forms_SHARED PROPERTIES OUTPUT_NAME fltk_forms)
-endif(MSVC)
 
 if(USE_THREADS)
    target_link_libraries(fltk_forms_SHARED ${CMAKE_THREAD_LIBS_INIT} ${LIB_dl})
@@ -404,62 +329,33 @@
 endif(USE_X11)
 
 #######################################################################
-add_library(fltk_images_SHARED SHARED ${IMGCPPFILES})
-target_link_libraries(fltk_images_SHARED fltk_SHARED
-   ${FLTK_PNG_LIBRARIES} ${FLTK_JPEG_LIBRARIES} ${FLTK_ZLIB_LIBRARIES}
-)
-set_target_properties(fltk_images_SHARED
-   PROPERTIES CLEAN_DIRECT_OUTPUT 1
-   VERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
-   SOVERSION ${FLTK_VERSION_PATCH}
-)
-if(MSVC)
-   set_target_properties(fltk_images_SHARED
-      PROPERTIES
-         OUTPUT_NAME fltkimagesdll
-         DEBUG_OUTPUT_NAME fltkimagesdlld
-         COMPILE_DEFINITIONS "FL_DLL;FL_LIBRARY"
-   )
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_images_SHARED PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
+FL_ADD_LIBRARY(fltk_images SHARED "${IMGCPPFILES}")
+target_link_libraries(fltk_images_SHARED fltk_SHARED)
+
+if(OPTION_USE_SYSTEM_LIBJPEG)
+    target_link_libraries(fltk_images_SHARED ${FLTK_JPEG_LIBRARIES})
 else()
-   set_target_properties(fltk_images_SHARED PROPERTIES OUTPUT_NAME fltk_images)
-endif(MSVC)
+    target_link_libraries(fltk_images_SHARED fltk_jpeg_SHARED)
+endif(OPTION_USE_SYSTEM_LIBJPEG)
 
-#######################################################################
-install(TARGETS fltk_SHARED fltk_forms_SHARED fltk_images_SHARED
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_LIB}
-)
+if(OPTION_USE_SYSTEM_ZLIB)
+    target_link_libraries(fltk_images_SHARED ${FLTK_ZLIB_LIBRARIES})
+else()
+    target_link_libraries(fltk_images_SHARED fltk_z_SHARED)
+endif(OPTION_USE_SYSTEM_ZLIB)
 
+if(OPTION_USE_SYSTEM_LIBPNG)
+    target_link_libraries(fltk_images_SHARED ${FLTK_PNG_LIBRARIES})
+else()
+    target_link_libraries(fltk_images_SHARED fltk_png_SHARED)
+endif(OPTION_USE_SYSTEM_LIBPNG)
+
 #######################################################################
 if(OPENGL_FOUND)
-   add_library(fltk_gl_SHARED SHARED ${GLCPPFILES})
+   FL_ADD_LIBRARY(fltk_gl SHARED "${GLCPPFILES}")
    target_link_libraries(fltk_gl_SHARED fltk_SHARED ${OPENGL_LIBRARIES})
-   set_target_properties(fltk_gl_SHARED
-      PROPERTIES CLEAN_DIRECT_OUTPUT 1
-      VERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
-      SOVERSION ${FLTK_VERSION_PATCH}
-   )
-   if(MSVC)
-      set_target_properties(fltk_gl_SHARED
-         PROPERTIES
-            OUTPUT_NAME fltkgldll
-            DEBUG_OUTPUT_NAME fltkgldlld
-            COMPILE_DEFINITIONS "FL_DLL;FL_LIBRARY"
-      )
-      if(OPTION_LARGE_FILE)
-         set_target_properties(fltk_gl_SHARED PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-      endif(OPTION_LARGE_FILE)
-   else()
-      set_target_properties(fltk_gl_SHARED PROPERTIES OUTPUT_NAME fltk_gl)
-   endif(MSVC)
-
-   install(TARGETS fltk_gl_SHARED
-      EXPORT fltk-install
-      DESTINATION ${PREFIX_LIB}
-   )
 endif(OPENGL_FOUND)
 
+#######################################################################
 endif(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
Index: test/CMakeLists.txt
===================================================================
--- test/CMakeLists.txt	(revision 10324)
+++ test/CMakeLists.txt	(working copy)
@@ -4,53 +4,13 @@
 # audio libs for test apps
 if(WIN32)
    set(AUDIOLIBS winmm)
-elseif(APPLE)
+elseif(__APPLE__)
    set(AUDIOLIBS "-framework CoreAudio")
 elseif(HAVE_ALSA_ASOUNDLIB_H)
    set(AUDIOLIBS -lasound)
 endif(WIN32)
 
 #######################################################################
-macro(CREATE_EXAMPLE NAME SOURCES LIBRARIES)
-	set(srcs)
-	set(flsrcs)
-	foreach(src ${SOURCES})
-		if("${src}" MATCHES ".fl$")
-         list(APPEND flsrcs ${src})
-		else()
-			list(APPEND srcs ${src})
-		endif("${src}" MATCHES ".fl$")
-	endforeach(src)
-
-   if(flsrcs)
-      fltk_wrap_ui(${NAME} ${flsrcs})
-   endif(flsrcs)
-
-	add_executable(${NAME} WIN32 ${srcs} ${${NAME}_FLTK_UI_SRCS})
-   if(flsrcs)
-      add_dependencies(${NAME} ${FLTK_FLUID_EXECUTABLE})
-   endif(flsrcs)
-	target_link_libraries(${NAME} ${LIBRARIES})
-
-   # link in optional libraries
-   if(FLTK_HAVE_CAIRO)
-      target_link_libraries(${NAME} fltk_cairo)
-   endif(FLTK_HAVE_CAIRO)
-
-   if(USE_XFT)
-      target_link_libraries(${NAME} ${X11_Xft_LIB})
-   endif(USE_XFT)
-
-   if(HAVE_XINERAMA)
-      target_link_libraries(${NAME} ${X11_Xinerama_LIB})
-   endif(HAVE_XINERAMA)
-
-   install(TARGETS ${NAME}
-      DESTINATION ${PREFIX_DOC}/examples
-      )
-endmacro(CREATE_EXAMPLE NAME SOURCES LIBRARIES)
-
-#######################################################################
 include_directories(
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -135,5 +95,5 @@
 
 # Cairo demo
 if(FLTK_HAVE_CAIRO)
-   CREATE_EXAMPLE(cairo_test cairo_test.cxx fltk)
+   CREATE_EXAMPLE(cairo_test cairo_test.cxx "fltk;fltk_cairo")
 endif(FLTK_HAVE_CAIRO)
Index: zlib/CMakeLists.txt
===================================================================
--- zlib/CMakeLists.txt	(revision 10324)
+++ zlib/CMakeLists.txt	(working copy)
@@ -1,32 +1,20 @@
-project(FLTKZLIB)
-include_regular_expression(regex_match "[.][h|c]$")
 
-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 
+   adler32.c compress.c crc32.c deflate.c
    gzclose.c gzlib.c gzread.c gzwrite.c
-   inffast.c infback.c inflate.c inftrees.c 
+   inffast.c infback.c inflate.c inftrees.c
    trees.c uncompr.c zutil.c
 )
 
 #######################################################################
-add_library(fltk_z ${ZLIB_SRCS})
+FL_ADD_LIBRARY(fltk_z STATIC "${ZLIB_SRCS}")
 
-if(MSVC)
-   set_target_properties(fltk_z
-      PROPERTIES
-         OUTPUT_NAME zlib
-         DEBUG_OUTPUT_NAME zlibd
-   )
-   if(OPTION_LARGE_FILE)
-      set_target_properties(fltk_z PROPERTIES LINK_FLAGS /LARGEADDRESSAWARE)
-   endif(OPTION_LARGE_FILE)
-endif(MSVC)
+#######################################################################
+if(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
+FL_ADD_LIBRARY(fltk_z SHARED "${ZLIB_SRCS}")
 
-install(TARGETS fltk_z
-   EXPORT fltk-install
-   DESTINATION ${PREFIX_LIB}
-)
+#######################################################################
+endif(OPTION_BUILD_SHARED_LIBS)
+#######################################################################
