diff --git a/CMake/fl_create_example.cmake b/CMake/fl_create_example.cmake
index 303b5ea41..77fb24d0b 100644
--- a/CMake/fl_create_example.cmake
+++ b/CMake/fl_create_example.cmake
@@ -1,8 +1,8 @@
#
-# A macro used by the CMake build system for the Fast Light Tool Kit (FLTK).
-# Written by Michael Surette
+# A function used by the CMake build system for the Fast Light Tool Kit (FLTK).
+# Originally written by Michael Surette
#
-# Copyright 1998-2020 by Bill Spitzak and others.
+# Copyright 1998-2023 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
@@ -17,7 +17,7 @@
################################################################################
#
-# macro CREATE_EXAMPLE - Create a test/demo (example) program
+# function CREATE_EXAMPLE - Create a test/demo (example) program
#
# Input:
#
@@ -119,13 +119,13 @@ function (CREATE_EXAMPLE NAME SOURCES LIBRARIES)
set_target_properties (${TARGET_NAME} PROPERTIES OUTPUT_NAME ${NAME})
target_link_libraries (${TARGET_NAME} ${LIBRARIES})
- # we must link all programs with fltk_cairo if option CAIROEXT is enabled
+ # we must link all programs with cairo if option CAIROEXT is enabled
if (FLTK_HAVE_CAIROEXT)
- target_link_libraries (${TARGET_NAME} fltk_cairo cairo)
+ target_link_libraries (${TARGET_NAME} ${PKG_CAIRO_LIBRARIES})
endif ()
- if (FLTK_HAVE_CAIRO)
- fl_target_link_directories (${TARGET_NAME} PRIVATE "${PKG_CAIRO_LIBRARY_DIRS}")
+ if (FLTK_HAVE_CAIRO AND PKG_CAIRO_LIBRARY_DIRS)
+ fl_target_link_directories (${TARGET_NAME} PUBLIC ${PKG_CAIRO_LIBRARY_DIRS})
endif ()
if (USE_GDIPLUS) # can only be true on Windows
diff --git a/CMake/options.cmake b/CMake/options.cmake
index e0235236d..392cb5cd6 100644
--- a/CMake/options.cmake
+++ b/CMake/options.cmake
@@ -412,19 +412,8 @@ if (OPTION_CAIRO OR OPTION_CAIROEXT)
if (OPTION_CAIROEXT)
set (FLTK_HAVE_CAIROEXT 1)
endif (OPTION_CAIROEXT)
- add_subdirectory (cairo)
-
- if (0)
- fl_debug_var (PKG_CAIRO_INCLUDE_DIRS)
- fl_debug_var (PKG_CAIRO_CFLAGS)
- fl_debug_var (PKG_CAIRO_LIBRARIES)
- fl_debug_var (PKG_CAIRO_LIBRARY_DIRS)
- fl_debug_var (PKG_CAIRO_STATIC_INCLUDE_DIRS)
- fl_debug_var (PKG_CAIRO_STATIC_CFLAGS)
- fl_debug_var (PKG_CAIRO_STATIC_LIBRARIES)
- fl_debug_var (PKG_CAIRO_STATIC_LIBRARY_DIRS)
- endif()
+ ### FIXME ###
include_directories (${PKG_CAIRO_INCLUDE_DIRS})
# Cairo libs and flags for fltk-config
@@ -442,16 +431,67 @@ if (OPTION_CAIRO OR OPTION_CAIROEXT)
string (REPLACE ";" " " CAIROLIBS "${CAIROLIBS}")
string (REPLACE ";" " " CAIROFLAGS "${PKG_CAIRO_CFLAGS}")
- # fl_debug_var (FLTK_LDLIBS)
- # fl_debug_var (CAIROFLAGS)
- # fl_debug_var (CAIROLIBS)
+ else (PKG_CAIRO_FOUND)
+
+ if (NOT MSVC)
+ message (STATUS "*** Cairo was requested but not found - please check your cairo installation")
+ message (STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.")
+ message (FATAL_ERROR "*** Terminating: missing Cairo libs or headers.")
+ endif ()
+
+ # Tweak Cairo includes / libs / paths for Visual Studio (TEMPORARY solution).
+ # Todo: find a better way to set the required variables and flags!
+ # AlbrechtS 03/2023
+
+ message (STATUS "--- Cairo not found: trying to find Cairo for MSVC ...")
+
+ if (NOT FLTK_CAIRO_DIR)
+ message (STATUS "--- Please set FLTK_CAIRO_DIR to point at the Cairo installation folder ...")
+ message (STATUS " ... with files 'include/cairo.h' and 'lib/x64/cairo.lib'")
+ message (STATUS "--- Example: cmake -DFLTK_CAIRO_DIR=\"C:/cairo-windows\" ...")
+ message (STATUS "--- Note: this will be changed in the future; currently only 64-bit supported")
+ message (FATAL_ERROR "*** Terminating: missing Cairo libs or headers.")
+ endif ()
+
+ set (CAIROLIBS "-lcairo") # should be correct: needs cairo.lib
+
+ # simulate results of 'pkg_search_module (PKG_CAIRO cairo)' and more (above)
+ # these variables will be used later
+
+ set (PKG_CAIRO_LIBRARIES "cairo")
+ set (PKG_CAIRO_INCLUDE_DIRS "${FLTK_CAIRO_DIR}/include")
+ set (PKG_CAIRO_LIBRARY_DIRS "${FLTK_CAIRO_DIR}/lib/x64/")
+
+ ### FIXME ###
+ include_directories (${PKG_CAIRO_INCLUDE_DIRS})
+
+ set (FLTK_HAVE_CAIRO 1)
+ if (OPTION_CAIROEXT)
+ set (FLTK_HAVE_CAIROEXT 1)
+ endif (OPTION_CAIROEXT)
- else ()
- message (STATUS "*** Cairo was requested but not found - please check your cairo installation")
- message (STATUS "*** or disable options OPTION_CAIRO and OPTION_CAIRO_EXT.")
- message (FATAL_ERROR "*** Terminating: missing Cairo libs or headers.")
endif (PKG_CAIRO_FOUND)
+ if (0) # 1 = DEBUG, 0 = no output
+ message (STATUS "--- options.cmake: Cairo related variables ---")
+ if (MSVC)
+ fl_debug_var (FLTK_CAIRO_DIR)
+ endif (MSVC)
+ fl_debug_var (PKG_CAIRO_INCLUDE_DIRS)
+ fl_debug_var (PKG_CAIRO_CFLAGS)
+ fl_debug_var (PKG_CAIRO_LIBRARIES)
+ fl_debug_var (PKG_CAIRO_LIBRARY_DIRS)
+ fl_debug_var (PKG_CAIRO_STATIC_INCLUDE_DIRS)
+ fl_debug_var (PKG_CAIRO_STATIC_CFLAGS)
+ fl_debug_var (PKG_CAIRO_STATIC_LIBRARIES)
+ fl_debug_var (PKG_CAIRO_STATIC_LIBRARY_DIRS)
+ message (STATUS "--- fltk-config/Cairo variables ---")
+ fl_debug_var (FLTK_LDLIBS)
+ fl_debug_var (CAIROFLAGS)
+ fl_debug_var (CAIROLIBS)
+ message (STATUS "--- End of Cairo related variables ---")
+ endif() # 1 = DEBUG, ...
+
endif (OPTION_CAIRO OR OPTION_CAIROEXT)
#######################################################################
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19d7b09c3..f00237a35 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -102,7 +102,17 @@ endif (debug_build)
unset (debug_build)
#######################################################################
-# build the FLTK libraries
+# Build a dummy ("empty") Cairo library for backwards compatibility.
+# This should be removed some time after 1.4.0 was released, maybe
+# in FLTK 1.4.1, 1.4.2, 1.5.0, or whatever the next minor release is.
+#######################################################################
+
+if (FLTK_HAVE_CAIRO)
+ add_subdirectory (cairo)
+endif ()
+
+#######################################################################
+# build the standard FLTK libraries
#######################################################################
add_subdirectory(src)
@@ -129,11 +139,13 @@ endif (FLTK_BUILD_FLTK_OPTIONS)
# install.cmake creates these files for an installed FLTK
# these two would only differ in paths, so common variables are set here
#######################################################################
+
include (CMake/variables.cmake)
#######################################################################
# final config and export
#######################################################################
+
include (CMake/export.cmake)
configure_file (
@@ -157,6 +169,7 @@ endif (FLTK_BUILD_EXAMPLES)
#######################################################################
# installation
#######################################################################
+
include (CMake/install.cmake)
#######################################################################
@@ -221,15 +234,15 @@ else ()
endif ()
if (FLTK_BUILD_FLUID)
- message (STATUS "FLUID will be built in ${CMAKE_CURRENT_BINARY_DIR}/bin/fluid")
+ message (STATUS "FLUID will be built in ${CMAKE_CURRENT_BINARY_DIR}/bin/fluid")
else ()
- message (STATUS "FLUID will not be built (set FLTK_BUILD_FLUID=ON to build)")
+ message (STATUS "FLUID will not be built (set FLTK_BUILD_FLUID=ON to build)")
endif ()
if (FLTK_BUILD_FLTK_OPTIONS)
- message (STATUS "fltk-options will be built in ${CMAKE_CURRENT_BINARY_DIR}/bin/fltk-options")
+ message (STATUS "fltk-options will be built in ${CMAKE_CURRENT_BINARY_DIR}/bin/fltk-options")
else ()
- message (STATUS "fltk-options will not be built (set FLTK_BUILD_FLTK_OPTIONS=ON to build)")
+ message (STATUS "fltk-options will not be built (set FLTK_BUILD_FLTK_OPTIONS=ON to build)")
endif ()
if (FLTK_BUILD_TEST)
@@ -243,21 +256,21 @@ else ()
endif ()
if (FLTK_USE_BUILTIN_JPEG)
- message (STATUS "Image Libraries: JPEG = Builtin")
+ message (STATUS "Image Libraries: JPEG = Builtin")
else ()
- message (STATUS "Image Libraries: JPEG = System")
+ message (STATUS "Image Libraries: JPEG = System")
endif ()
if (FLTK_USE_BUILTIN_PNG)
- message (STATUS " PNG = Builtin")
+ message (STATUS " PNG = Builtin")
else ()
- message (STATUS " PNG = System")
+ message (STATUS " PNG = System")
endif ()
if (FLTK_USE_BUILTIN_ZLIB)
- message (STATUS " ZLIB = Builtin")
+ message (STATUS " ZLIB = Builtin")
else ()
- message (STATUS " ZLIB = System")
+ message (STATUS " ZLIB = System")
endif ()
if (UNIX AND NOT (APPLE AND NOT OPTION_APPLE_X11))
diff --git a/FL/Fl_Cairo.H b/FL/Fl_Cairo.H
index 29496f0b9..431679541 100644
--- a/FL/Fl_Cairo.H
+++ b/FL/Fl_Cairo.H
@@ -1,7 +1,7 @@
//
-// Main header file for the Fast Light Tool Kit (FLTK).
+// Main Cairo header file for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2021 by Bill Spitzak and others.
+// Copyright 1998-2022 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -14,74 +14,88 @@
// https://www.fltk.org/bugs.php
//
-/* \file
- Handling transparently platform dependent cairo include files
+/** \file Fl_Cairo.H
+ Cairo is currently supported for the following platforms:
+ Windows, macOS, Unix/Linux (X11 + Wayland).
+
+ \note In FLTK 1.3.x this header file (Fl_Cairo.H) included the platform
+ specific Cairo headers. This is no longer true since 1.4.0.
+
+ This header file is platform agnostic. If you need platform specific Cairo
+ headers you need to #include them in your source file.
+
+ To use FLTK's builtin Cairo support you need to \#include \
+ \b before you include any other FLTK header which is officially required anyway.
+ Since FLTK 1.4.0 the preprocessor constants \p FLTK_HAVE_CAIRO and/or
+ \p FLTK_HAVE_CAIROEXT are defined in \ by including \.
*/
#ifndef FL_CAIRO_H
-# define FL_CAIRO_H
+#define FL_CAIRO_H
-# include // build configuration
+#include
# ifdef FLTK_HAVE_CAIRO
-// Cairo is currently supported for the following platforms:
-// Win32, Apple Quartz, X11
-
-# include
-
# include
/**
- \addtogroup group_cairo
- @{
+ \addtogroup group_cairo
+ @{
*/
/**
- Contains all the necessary info on the current cairo context.
- A private internal & unique corresponding object is created to
- permit cairo context state handling while keeping it opaque.
- For internal use only.
- \note Only available when configure has the --enable-cairo or
- --enable-cairoext option or one or both of the CMake options
- OPTION_CAIRO or OPTION_CAIROEXT is set (ON)
+ Contains all the necessary info on the current cairo context.
+ A private internal & unique corresponding object is created to
+ permit cairo context state handling while keeping it opaque.
+ For internal use only.
+ \note Only available when configure has the --enable-cairo or
+ --enable-cairoext option or one or both of the CMake options
+ OPTION_CAIRO or OPTION_CAIROEXT is set (ON)
*/
class FL_EXPORT Fl_Cairo_State {
public:
- Fl_Cairo_State() : cc_(0), own_cc_(false), autolink_(false), window_(0), gc_(0) {}
+ Fl_Cairo_State()
+ : cc_(0)
+ , own_cc_(false)
+ , autolink_(false)
+ , window_(0)
+ , gc_(0) {}
- // access attributes
- cairo_t* cc() const {return cc_;} ///< Gets the current cairo context
- bool autolink() const {return autolink_;} ///< Gets the autolink option. See Fl::cairo_autolink_context(bool)
- /** Sets the current cairo context.
+ // access attributes
+ cairo_t *cc() const { return cc_; } ///< Gets the current cairo context
+ bool autolink() const { return autolink_; } ///< Gets the autolink option. See Fl::cairo_autolink_context(bool)
+ /** Sets the current cairo context.
- \p own == \e true (the default) indicates that the cairo context \p c
- will be deleted by FLTK internally when another cc is set later.
+ \p own == \e true (the default) indicates that the cairo context \p c
+ will be deleted by FLTK internally when another cc is set later.
- \p own == \e false indicates cc deletion is handled externally
- by the user program.
- */
- void cc(cairo_t* c, bool own=true) {
- if (cc_ && own_cc_) cairo_destroy(cc_);
- cc_=c;
- if (!cc_) window_=0;
- own_cc_=own;
- }
- void autolink(bool b); ///< Sets the autolink option, only available with --enable-cairoext
- void window(void* w) {window_=w;} ///< Sets the window \p w to keep track on
- void* window() const {return window_;} ///< Gets the last window attached to a cc
- void gc(void* c) {gc_=c;} ///< Sets the gc \p c to keep track on
- void* gc() const {return gc_;} ///< Gets the last gc attached to a cc
+ \p own == \e false indicates cc deletion is handled externally
+ by the user program.
+ */
+ void cc(cairo_t *c, bool own = true) {
+ if (cc_ && own_cc_)
+ cairo_destroy(cc_);
+ cc_ = c;
+ if (!cc_)
+ window_ = 0;
+ own_cc_ = own;
+ }
+ void autolink(bool b); ///< Sets the autolink option, only available with --enable-cairoext
+ void window(void *w) { window_ = w; } ///< Sets the window \p w to keep track on
+ void *window() const { return window_; } ///< Gets the last window attached to a cc
+ void gc(void *c) { gc_ = c; } ///< Sets the gc \p c to keep track on
+ void *gc() const { return gc_; } ///< Gets the last gc attached to a cc
private:
- cairo_t * cc_; // contains the unique autoupdated cairo context
- bool own_cc_; // indicates whether we must delete the cc, useful for internal cleanup
- bool autolink_; // false by default, prevents the automatic cairo mapping on fltk windows
- // for custom cairo implementations.
- void* window_, *gc_; // for keeping track internally of last win+gc treated
+ cairo_t *cc_; // contains the unique autoupdated cairo context
+ bool own_cc_; // indicates whether we must delete the cc, useful for internal cleanup
+ bool autolink_; // false by default, prevents the automatic cairo mapping on fltk windows
+ // for custom cairo implementations.
+ void *window_, *gc_; // for keeping track internally of last win+gc treated
};
/** @} */
-# endif // FLTK_HAVE_CAIRO
+#endif // FLTK_HAVE_CAIRO
#endif // FL_CAIRO_H
diff --git a/FL/Fl_Cairo_Window.H b/FL/Fl_Cairo_Window.H
index 0816adee3..65a8d5eeb 100644
--- a/FL/Fl_Cairo_Window.H
+++ b/FL/Fl_Cairo_Window.H
@@ -1,7 +1,7 @@
//
-// Cairo Window header file for the Fast Light Tool Kit (FLTK).
+// Cairo window header file for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2021 by Bill Spitzak and others.
+// Copyright 1998-2023 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -15,7 +15,7 @@
//
/* \file
- Fl_Cairo_Window Handling transparently a FLTK window incorporating a cairo draw callback.
+ Fl_Cairo_Window, an FLTK window incorporating a Cairo draw callback.
*/
#ifndef FL_CAIRO_WINDOW_H
@@ -26,7 +26,7 @@
# ifdef FLTK_HAVE_CAIRO
// Cairo is currently supported for the following platforms:
-// Win32, Apple Quartz, X11
+// Win32, Apple Quartz, X11, Wayland
# include
# include
@@ -36,11 +36,11 @@
*/
/**
- This defines a FLTK window with cairo support.
+ This defines an FLTK window with Cairo support.
- This class overloads the virtual draw() method for you,
- so that the only thing you have to do is to provide your cairo code.
- All cairo context handling is achieved transparently.
+ This class overloads the virtual draw() method for you,
+ so that the only thing you have to do is to provide your Cairo code.
+ All Cairo context handling is achieved transparently.
The default coordinate system for cairo drawing commands within Fl_Cario_Window
is FLTK's coordinate system, where the `x,y,w,h` values are releative to the
@@ -79,7 +79,7 @@
CMake option OPTION_CAIRO or configure --enable-cairo.
\note You can alternatively define your custom cairo FLTK window,
- and thus at least override the draw() method to provide custom cairo
+ and thus at least override the draw() method to provide custom Cairo
support. In this case you will probably use Fl::cairo_make_current(Fl_Window*)
to attach a context to your window. You should do it only when your window is
the current window. \see Fl_Window::current()
@@ -93,7 +93,7 @@ public:
: Fl_Double_Window(X, Y, W, H, L), draw_cb_(0) {}
protected:
- /** Overloaded to provide cairo callback support */
+ /** Overloaded to provide Cairo callback support */
void draw() FL_OVERRIDE {
Fl_Double_Window::draw();
if (draw_cb_) { // call the Cairo draw callback
@@ -101,18 +101,19 @@ protected:
if (!Fl::cairo_autolink_context())
Fl::cairo_make_current(this);
draw_cb_(this, Fl::cairo_cc());
- // flush cairo drawings: necessary at least for Windows
+ // flush Cairo drawings: necessary at least for Windows
cairo_surface_t *s = cairo_get_target(Fl::cairo_cc());
cairo_surface_flush(s);
}
}
public:
- /** This defines the cairo draw callback prototype that you must further */
+ /** The Cairo draw callback prototype you need to implement. */
typedef void (*cairo_draw_cb) (Fl_Cairo_Window* self, cairo_t* def);
+
/**
- You must provide a draw callback which will implement your cairo rendering.
- This method will permit you to set your cairo callback to \p cb.
+ You must provide a draw callback that implements your Cairo rendering.
+ This method permits you to set your Cairo callback to \p cb.
*/
void set_draw_cb(cairo_draw_cb cb) { draw_cb_ = cb; }
private:
diff --git a/Makefile b/Makefile
index 7dbb8ac8f..b31cc4df8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
#
# Top-level Makefile for the Fast Light Tool Kit (FLTK).
#
-# Copyright 1998-2021 by Bill Spitzak and others.
+# Copyright 1998-2023 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
@@ -113,7 +113,7 @@ native-dist:
epm -v -f native fltk
etags:
- etags FL/*.H FL/*.h src/*.cxx src/*.c src/*.h src/xutf8/*.h src/xutf8/*.c cairo/*.cxx fluid/*.h fluid/*.cxx fltk-options/*.cxx test/*.h test/*.cxx
+ etags FL/*.H FL/*.h src/*.cxx src/*.c src/*.h src/xutf8/*.h src/xutf8/*.c cairo/*.c fluid/*.h fluid/*.cxx test/*.h test/*.cxx
#
# Run the clang.llvm.org static code analysis tool on the C sources.
diff --git a/cairo/CMakeLists.txt b/cairo/CMakeLists.txt
index 1bb784362..f031d674f 100644
--- a/cairo/CMakeLists.txt
+++ b/cairo/CMakeLists.txt
@@ -1,22 +1,39 @@
+#
+# CMakeLists.txt to build a dummy Cairo library for the FLTK project using CMake
+#
+# Copyright 1998-2023 by Bill Spitzak and others.
+#
+# This library is free software. Distribution and use rights are outlined in
+# the file "COPYING" which should have been included with this file. If this
+# file is missing or damaged, see the license at:
+#
+# https://www.fltk.org/COPYING.php
+#
+# Please see the following page on how to report bugs and issues:
+#
+# https://www.fltk.org/bugs.php
+#
-include_directories (${PKG_CAIRO_INCLUDE_DIRS})
+########################################################################
+# Note: since FLTK 1.4.0 Fl_Cairo_Window support [1] is included in
+# libfltk and libfltk_cairo is no longer necessary. This directory is
+# used to build an "empty" dummy library for backwards compatibility,
+# just in case users expect it to exist.
+# ----------------------------------------------------------------------
+# The entire 'cairo' folder will be removed in a later FLTK release.
+########################################################################
-# source files for cairo
-set (cairo_SRCS Fl_Cairo.cxx)
+# Build dummy fltk_cairo library
+
+set (cairo_SRCS cairo_dummy.c)
-#######################################################################
FL_ADD_LIBRARY (fltk_cairo STATIC "${cairo_SRCS}")
-#######################################################################
-# Build shared library (optional)
-#######################################################################
+# Build shared dummy library (optional)
if (OPTION_BUILD_SHARED_LIBS)
FL_ADD_LIBRARY (fltk_cairo SHARED "${cairo_SRCS}")
- target_link_libraries (fltk_cairo_SHARED fltk_SHARED ${PKG_CAIRO_LIBRARIES})
- fl_target_link_directories (fltk_cairo_SHARED PRIVATE "${PKG_CAIRO_LIBRARY_DIRS}")
+ target_link_libraries (fltk_cairo_SHARED fltk_SHARED)
endif (OPTION_BUILD_SHARED_LIBS)
-
-#######################################################################
diff --git a/cairo/Makefile b/cairo/Makefile
index 3d7f79ec5..a7ca58af5 100644
--- a/cairo/Makefile
+++ b/cairo/Makefile
@@ -1,8 +1,8 @@
#
-# CAIRO library makefile for the Fast Light Toolkit (FLTK).
+# Dummy Cairo Library Makefile for the Fast Light Toolkit (FLTK).
#
# Copyright 1997-2009 by Easy Software Products.
-# Copyright 2010-2021 by Bill Spitzak and others.
+# Copyright 2010-2023 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
@@ -15,6 +15,15 @@
# https://www.fltk.org/bugs.php
#
+########################################################################
+# Note: since FLTK 1.4.0 Fl_Cairo_Window support [1] is included in
+# libfltk and libfltk_cairo is no longer necessary. This directory is
+# used to build an "empty" dummy library for backwards compatibility,
+# just in case users expect it to exist.
+# ----------------------------------------------------------------------
+# The entire 'cairo' folder will be removed in a later FLTK release.
+########################################################################
+
# Note: see ../configure.in and/or ../makeinclude for definition of
# FL_VERSION (x.y.z), FL_ABI_VERSION (x.y.0), and FL_DSO_VERSION (x.y)
@@ -24,8 +33,8 @@ include ../makeinclude
#
# Object files...
#
-CAIROCPPFILES = Fl_Cairo.cxx
-CAIROOBJECTS = $(CAIROCPPFILES:.cxx=.o)
+CAIROCFILES = cairo_dummy.c
+CAIROOBJECTS = $(CAIROCFILES:.c=.o)
#
# Make all of the targets...
@@ -89,7 +98,7 @@ mgwfltknox_cairo-$(FL_DSO_VERSION).dll: $(CAIROLIBNAME) ../src/mgwfltknox-$(FL_D
clean:
-$(RM) *.o *.dll.a core.* *~ *.bak *.bck
-$(RM) $(CAIROOBJECTS) $(CAIROLIBNAME) $(CAIRODSONAME) \
- libfltk_cairo.so src/libfltk_cairo.sl src/libfltk_cairo.dylib
+ libfltk_cairo.so src/libfltk_cairo.sl src/libfltk_cairo.dylib
#
# Install everything...
@@ -163,8 +172,8 @@ uninstall:
$(CAIROOBJECTS): ../makeinclude
-depend: $(CAIROCPPFILES)
- makedepend -Y -I.. -f makedepend -w 20 $(CAIROCPPFILES)
+depend: $(CAIROCFILES)
+ makedepend -Y -I.. -f makedepend -w 20 $(CAIROCFILES)
echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > makedepend.tmp
echo "" >> makedepend.tmp
grep '^[a-zA-Z]' makedepend | ( LC_ALL=C sort -u -f >> makedepend.tmp; )
diff --git a/cairo/cairo_dummy.c b/cairo/cairo_dummy.c
new file mode 100644
index 000000000..afa47504b
--- /dev/null
+++ b/cairo/cairo_dummy.c
@@ -0,0 +1,28 @@
+/*
+ Dummy C file to build the dummy Cairo library for the FLTK project.
+
+ Copyright 2023 by Bill Spitzak and others.
+
+ This library is free software. Distribution and use rights are outlined in
+ the file "COPYING" which should have been included with this file. If this
+ file is missing or damaged, see the license at:
+
+ https://www.fltk.org/COPYING.php
+
+ Please see the following page on how to report bugs and issues:
+
+ https://www.fltk.org/bugs.php
+*/
+
+/*
+ Note: since FLTK 1.4.0 Fl_Cairo_Window support is included in
+ libfltk and libfltk_cairo is no longer necessary. This directory is
+ used to build an "empty" dummy library for backwards compatibility,
+ just in case users expect it to exist.
+
+ The entire 'cairo' folder will be removed in a later FLTK release.
+*/
+
+int fl_cairo_dummy() {
+ return 0;
+}
diff --git a/cairo/makedepend b/cairo/makedepend
index 8734674b2..99be05b37 100644
--- a/cairo/makedepend
+++ b/cairo/makedepend
@@ -1,19 +1,2 @@
# DO NOT DELETE THIS LINE -- make depend depends on it.
-Fl_Cairo.o: ../FL/Enumerations.H
-Fl_Cairo.o: ../FL/Fl.H
-Fl_Cairo.o: ../FL/fl_attr.h
-Fl_Cairo.o: ../FL/Fl_Bitmap.H
-Fl_Cairo.o: ../FL/Fl_Cairo.H
-Fl_Cairo.o: ../FL/fl_casts.H
-Fl_Cairo.o: ../FL/fl_config.h
-Fl_Cairo.o: ../FL/Fl_Export.H
-Fl_Cairo.o: ../FL/Fl_Group.H
-Fl_Cairo.o: ../FL/Fl_Image.H
-Fl_Cairo.o: ../FL/fl_types.h
-Fl_Cairo.o: ../FL/fl_utf8.h
-Fl_Cairo.o: ../FL/Fl_Widget.H
-Fl_Cairo.o: ../FL/Fl_Window.H
-Fl_Cairo.o: ../FL/platform.H
-Fl_Cairo.o: ../FL/platform_types.h
-Fl_Cairo.o: ../FL/x11.H
diff --git a/configure.ac b/configure.ac
index 292829ceb..41b054ab5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,7 +86,7 @@ AC_SUBST(OPTIM)
dnl Other options
AC_ARG_ENABLE([cairo], AS_HELP_STRING([--enable-cairo], [add support for Fl_Cairo_Window]))
-AC_ARG_ENABLE([cairoext], AS_HELP_STRING([--enable-cairoext], [use FLTK code instrumentation for cairo extended use]))
+AC_ARG_ENABLE([cairoext], AS_HELP_STRING([--enable-cairoext], [use FLTK code instrumentation for Cairo extended use]))
AC_ARG_ENABLE([cp936], AS_HELP_STRING([--enable-cp936], [turn on CP936]))
AS_IF([test x$enable_cp936 = xyes], [
@@ -235,7 +235,7 @@ AS_IF([test x$enable_cairoext = xyes], [
LIBS="$CAIROLIBS $LIBS"
LINKFLTK="$LINKFLTK $LINKFLTKCAIRO"
], [
- AC_MSG_ERROR([Cairo requested but not available.])
+ AC_MSG_ERROR([Cairo requested but not found.])
])
], [test x$enable_cairo = xyes], [
AS_IF([$PKGCONFIG --exists cairo], [
@@ -247,7 +247,7 @@ AS_IF([test x$enable_cairoext = xyes], [
LINKFLTKCAIRO="../lib/libfltk_cairo.a"
FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX"
], [
- AC_MSG_ERROR([Cairo requested but not available.])
+ AC_MSG_ERROR([Cairo requested but not found.])
])
])
diff --git a/documentation/Doxyfile.in b/documentation/Doxyfile.in
index 181de6494..6f3975464 100644
--- a/documentation/Doxyfile.in
+++ b/documentation/Doxyfile.in
@@ -570,7 +570,6 @@ INPUT += @CMAKE_CURRENT_SOURCE_DIR@/src/advanced.dox
INPUT += @CMAKE_CURRENT_SOURCE_DIR@/src/unicode.dox
INPUT += @FLTK_SOURCE_DIR@/FL
INPUT += @FLTK_SOURCE_DIR@/src
-INPUT += @FLTK_SOURCE_DIR@/cairo
INPUT += @CMAKE_CURRENT_SOURCE_DIR@/src/enumerations.dox
INPUT += @CMAKE_CURRENT_SOURCE_DIR@/src/glut.dox
INPUT += @CMAKE_CURRENT_SOURCE_DIR@/src/forms.dox
diff --git a/fltk-config.in b/fltk-config.in
index bd3eacec7..c82d8067c 100644
--- a/fltk-config.in
+++ b/fltk-config.in
@@ -261,8 +261,8 @@ if test x$use_images = xyes; then
fi
if test x$use_cairo = xyes -a $FLTK_HAVE_CAIRO = 1; then
- LDLIBS="-lfltk_cairo$SHAREDSUFFIX $CAIROLIBS $LDLIBS"
- LDSTATIC="$libdir/libfltk_cairo.a $CAIROLIBS $LDSTATIC"
+ LDLIBS="$CAIROLIBS $LDLIBS"
+ LDSTATIC="$CAIROLIBS $LDSTATIC"
fi
LDLIBS="$DSOLINK $LDFLAGS $libs $LDLIBS"
@@ -390,10 +390,6 @@ if test "$echo_libs" = "yes"; then
USELIBS="$libdir/libfltk_gl.a $USELIBS"
fi
- if test x$use_cairo = xyes; then
- USELIBS="$libdir/libfltk_cairo.a $USELIBS"
- fi
-
if test x$use_images = xyes; then
USELIBS="$libdir/libfltk_images.a $USELIBS"
diff --git a/fltk-options/CMakeLists.txt b/fltk-options/CMakeLists.txt
index 7f289ab92..96c61773c 100644
--- a/fltk-options/CMakeLists.txt
+++ b/fltk-options/CMakeLists.txt
@@ -51,11 +51,7 @@ else ()
endif ()
-# we must link all programs with fltk_cairo if option CAIROEXT is enabled
-if (FLTK_HAVE_CAIROEXT)
- list (APPEND FLTK_OPTIONS_LIBS fltk_cairo cairo)
-endif (FLTK_HAVE_CAIROEXT)
-
+# we must link fltk-optons with cairo if option CAIRO is enabled
if (FLTK_HAVE_CAIRO)
fl_target_link_directories (fltk-options PRIVATE "${PKG_CAIRO_LIBRARY_DIRS}")
endif (FLTK_HAVE_CAIRO)
diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt
index a9aac0019..ab891a67c 100644
--- a/fluid/CMakeLists.txt
+++ b/fluid/CMakeLists.txt
@@ -1,7 +1,7 @@
#
# CMakeLists.txt to build fluid for the FLTK project using CMake (www.cmake.org)
#
-# Copyright 1998-2022 by Bill Spitzak and others.
+# Copyright 1998-2023 by Bill Spitzak and others.
#
# This library is free software. Distribution and use rights are outlined in
# the file "COPYING" which should have been included with this file. If this
@@ -114,13 +114,12 @@ else ()
endif ()
-# we must link all programs with fltk_cairo if option CAIROEXT is enabled
-if (FLTK_HAVE_CAIROEXT)
- list (APPEND FLUID_LIBS fltk_cairo cairo)
-endif (FLTK_HAVE_CAIROEXT)
-
+# we must link fluid with Cairo if OPTION_CAIRO is enabled
if (FLTK_HAVE_CAIRO)
- fl_target_link_directories (fluid PRIVATE "${PKG_CAIRO_LIBRARY_DIRS}")
+ target_include_directories (fluid PRIVATE ${PKG_CAIRO_INCLUDE_DIRS})
+ if (PKG_CAIRO_LIBRARY_DIRS)
+ fl_target_link_directories (fluid PRIVATE ${PKG_CAIRO_LIBRARY_DIRS})
+ endif ()
endif (FLTK_HAVE_CAIRO)
if (USE_GDIPLUS) # can only be true on Windows
@@ -137,11 +136,27 @@ if (WIN32)
list (APPEND FLUID_TARGETS fluid-cmd)
add_executable (fluid-cmd ${CPPFILES} ${HEADERFILES})
target_link_libraries (fluid-cmd ${FLUID_LIBS})
- if (FLTK_HAVE_CAIRO)
- fl_target_link_directories (fluid-cmd PRIVATE "${PKG_CAIRO_LIBRARY_DIRS}")
- endif (FLTK_HAVE_CAIRO)
-endif ()
+ # we must link fluid-cmd with Cairo if OPTION_CAIRO is enabled (same as above)
+ if (FLTK_HAVE_CAIRO)
+ target_include_directories (fluid-cmd PRIVATE ${PKG_CAIRO_INCLUDE_DIRS})
+ if (PKG_CAIRO_LIBRARY_DIRS)
+ fl_target_link_directories (fluid-cmd PRIVATE ${PKG_CAIRO_LIBRARY_DIRS})
+ endif ()
+ endif (FLTK_HAVE_CAIRO)
+endif (WIN32)
+
+# Build fluid-shared (experimental)
+
+if (OPTION_BUILD_SHARED_LIBS)
+ list (APPEND FLUID_TARGETS fluid-shared)
+ add_executable (fluid-shared ${CPPFILES} ${HEADERFILES})
+ if (MSVC)
+ target_link_libraries (fluid-shared fltk_SHARED)
+ else ()
+ target_link_libraries (fluid-shared fltk_images_SHARED)
+ endif (MSVC)
+endif ()
# install fluid GUI and commandline tool
@@ -164,7 +179,7 @@ if (APPLE AND (NOT OPTION_APPLE_X11))
# ## set_target_properties (fluid PROPERTIES RESOURCE ${ICON_PATH})
# install fluid GUI and commandline tools
- #install (TARGETS fluid DESTINATION "/Applications")
+ # install (TARGETS fluid DESTINATION "/Applications")
# install command line tool
install (PROGRAMS $ DESTINATION ${FLTK_BINDIR})
@@ -180,7 +195,7 @@ else()
ARCHIVE DESTINATION ${FLTK_LIBDIR}
)
- endif (APPLE AND (NOT OPTION_APPLE_X11))
+endif (APPLE AND (NOT OPTION_APPLE_X11))
# install desktop files
diff --git a/fluid/makedepend b/fluid/makedepend
index 5c5583a14..8e2b8361f 100644
--- a/fluid/makedepend
+++ b/fluid/makedepend
@@ -220,6 +220,72 @@ CodeEditor.o: ../FL/Fl_Widget.H
CodeEditor.o: ../FL/platform_types.h
CodeEditor.o: CodeEditor.h
CodeEditor.o: StyleParse.h
+custom_widgets.o: ../config.h
+custom_widgets.o: ../FL/Enumerations.H
+custom_widgets.o: ../FL/filename.H
+custom_widgets.o: ../FL/Fl.H
+custom_widgets.o: ../FL/fl_attr.h
+custom_widgets.o: ../FL/Fl_Bitmap.H
+custom_widgets.o: ../FL/Fl_Box.H
+custom_widgets.o: ../FL/Fl_Browser_.H
+custom_widgets.o: ../FL/Fl_Button.H
+custom_widgets.o: ../FL/Fl_Cairo.H
+custom_widgets.o: ../FL/fl_casts.H
+custom_widgets.o: ../FL/Fl_Check_Button.H
+custom_widgets.o: ../FL/Fl_Choice.H
+custom_widgets.o: ../FL/fl_config.h
+custom_widgets.o: ../FL/Fl_Device.H
+custom_widgets.o: ../FL/Fl_Double_Window.H
+custom_widgets.o: ../FL/fl_draw.H
+custom_widgets.o: ../FL/Fl_Export.H
+custom_widgets.o: ../FL/Fl_Graphics_Driver.H
+custom_widgets.o: ../FL/Fl_Group.H
+custom_widgets.o: ../FL/Fl_Image.H
+custom_widgets.o: ../FL/Fl_Input.H
+custom_widgets.o: ../FL/Fl_Input_.H
+custom_widgets.o: ../FL/Fl_Input_Choice.H
+custom_widgets.o: ../FL/Fl_Light_Button.H
+custom_widgets.o: ../FL/Fl_Menu_.H
+custom_widgets.o: ../FL/Fl_Menu_Button.H
+custom_widgets.o: ../FL/Fl_Menu_Item.H
+custom_widgets.o: ../FL/Fl_Pixmap.H
+custom_widgets.o: ../FL/Fl_Plugin.H
+custom_widgets.o: ../FL/Fl_Preferences.H
+custom_widgets.o: ../FL/Fl_Rect.H
+custom_widgets.o: ../FL/Fl_Return_Button.H
+custom_widgets.o: ../FL/Fl_RGB_Image.H
+custom_widgets.o: ../FL/Fl_Scrollbar.H
+custom_widgets.o: ../FL/Fl_Shortcut_Button.H
+custom_widgets.o: ../FL/Fl_Slider.H
+custom_widgets.o: ../FL/Fl_String.H
+custom_widgets.o: ../FL/fl_string_functions.h
+custom_widgets.o: ../FL/Fl_Tabs.H
+custom_widgets.o: ../FL/Fl_Text_Buffer.H
+custom_widgets.o: ../FL/Fl_Text_Display.H
+custom_widgets.o: ../FL/Fl_Text_Editor.H
+custom_widgets.o: ../FL/Fl_Tile.H
+custom_widgets.o: ../FL/fl_types.h
+custom_widgets.o: ../FL/fl_utf8.h
+custom_widgets.o: ../FL/Fl_Valuator.H
+custom_widgets.o: ../FL/Fl_Value_Input.H
+custom_widgets.o: ../FL/Fl_Widget.H
+custom_widgets.o: ../FL/Fl_Window.H
+custom_widgets.o: ../FL/platform.H
+custom_widgets.o: ../FL/platform_types.h
+custom_widgets.o: ../FL/x11.H
+custom_widgets.o: ../src/flstring.h
+custom_widgets.o: code.h
+custom_widgets.o: CodeEditor.h
+custom_widgets.o: custom_widgets.h
+custom_widgets.o: factory.h
+custom_widgets.o: fluid.h
+custom_widgets.o: Fl_Type.h
+custom_widgets.o: Fl_Widget_Type.h
+custom_widgets.o: Fl_Window_Type.h
+custom_widgets.o: pixmaps.h
+custom_widgets.o: StyleParse.h
+custom_widgets.o: widget_browser.h
+custom_widgets.o: widget_panel.h
ExternalCodeEditor_UNIX.o: ../FL/Enumerations.H
ExternalCodeEditor_UNIX.o: ../FL/filename.H
ExternalCodeEditor_UNIX.o: ../FL/Fl.H
@@ -722,6 +788,7 @@ Fl_Menu_Type.o: ../FL/Fl_Scheme.H
Fl_Menu_Type.o: ../FL/Fl_Scheme_Choice.H
Fl_Menu_Type.o: ../FL/Fl_Scrollbar.H
Fl_Menu_Type.o: ../FL/Fl_Shared_Image.H
+Fl_Menu_Type.o: ../FL/Fl_Shortcut_Button.H
Fl_Menu_Type.o: ../FL/Fl_Simple_Terminal.H
Fl_Menu_Type.o: ../FL/Fl_Slider.H
Fl_Menu_Type.o: ../FL/Fl_Spinner.H
@@ -740,6 +807,7 @@ Fl_Menu_Type.o: ../FL/platform_types.h
Fl_Menu_Type.o: ../src/flstring.h
Fl_Menu_Type.o: alignment_panel.h
Fl_Menu_Type.o: code.h
+Fl_Menu_Type.o: custom_widgets.h
Fl_Menu_Type.o: file.h
Fl_Menu_Type.o: fluid.h
Fl_Menu_Type.o: Fluid_Image.h
@@ -849,6 +917,7 @@ Fl_Widget_Type.o: ../FL/Fl_Scheme_Choice.H
Fl_Widget_Type.o: ../FL/Fl_Scroll.H
Fl_Widget_Type.o: ../FL/Fl_Scrollbar.H
Fl_Widget_Type.o: ../FL/Fl_Shared_Image.H
+Fl_Widget_Type.o: ../FL/Fl_Shortcut_Button.H
Fl_Widget_Type.o: ../FL/fl_show_colormap.H
Fl_Widget_Type.o: ../FL/Fl_Simple_Terminal.H
Fl_Widget_Type.o: ../FL/Fl_Slider.H
@@ -873,6 +942,7 @@ Fl_Widget_Type.o: ../src/flstring.h
Fl_Widget_Type.o: alignment_panel.h
Fl_Widget_Type.o: code.h
Fl_Widget_Type.o: CodeEditor.h
+Fl_Widget_Type.o: custom_widgets.h
Fl_Widget_Type.o: ExternalCodeEditor_UNIX.h
Fl_Widget_Type.o: file.h
Fl_Widget_Type.o: fluid.h
@@ -935,6 +1005,7 @@ Fl_Window_Type.o: ../FL/Fl_Scheme.H
Fl_Window_Type.o: ../FL/Fl_Scheme_Choice.H
Fl_Window_Type.o: ../FL/Fl_Scrollbar.H
Fl_Window_Type.o: ../FL/Fl_Shared_Image.H
+Fl_Window_Type.o: ../FL/Fl_Shortcut_Button.H
Fl_Window_Type.o: ../FL/Fl_Simple_Terminal.H
Fl_Window_Type.o: ../FL/Fl_Slider.H
Fl_Window_Type.o: ../FL/Fl_Spinner.H
@@ -959,6 +1030,7 @@ Fl_Window_Type.o: ../src/flstring.h
Fl_Window_Type.o: alignment_panel.h
Fl_Window_Type.o: code.h
Fl_Window_Type.o: CodeEditor.h
+Fl_Window_Type.o: custom_widgets.h
Fl_Window_Type.o: factory.h
Fl_Window_Type.o: file.h
Fl_Window_Type.o: fluid.h
@@ -1019,6 +1091,7 @@ function_panel.o: ../FL/Fl_Window.H
function_panel.o: ../FL/platform_types.h
function_panel.o: code.h
function_panel.o: CodeEditor.h
+function_panel.o: custom_widgets.h
function_panel.o: factory.h
function_panel.o: fluid.h
function_panel.o: Fl_Type.h
@@ -1290,6 +1363,7 @@ widget_panel.o: ../FL/Fl_Rect.H
widget_panel.o: ../FL/Fl_Return_Button.H
widget_panel.o: ../FL/Fl_RGB_Image.H
widget_panel.o: ../FL/Fl_Scrollbar.H
+widget_panel.o: ../FL/Fl_Shortcut_Button.H
widget_panel.o: ../FL/Fl_Slider.H
widget_panel.o: ../FL/Fl_Tabs.H
widget_panel.o: ../FL/Fl_Text_Buffer.H
@@ -1305,6 +1379,7 @@ widget_panel.o: ../FL/Fl_Window.H
widget_panel.o: ../FL/platform_types.h
widget_panel.o: code.h
widget_panel.o: CodeEditor.h
+widget_panel.o: custom_widgets.h
widget_panel.o: Fl_Type.h
widget_panel.o: Fl_Widget_Type.h
widget_panel.o: pixmaps.h
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 40671d392..741d1f5b8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -172,6 +172,10 @@ set (CPPFILES
screen_xywh.cxx
)
+if (FLTK_HAVE_CAIRO) # OPTION_CAIRO or OPTION_CAIROEXT
+ list (APPEND CPPFILES Fl_Cairo.cxx)
+endif ()
+
# find all header files in source directory
file (GLOB
HEADER_FILES
@@ -616,6 +620,10 @@ if (HAVE_XRENDER)
list (APPEND OPTIONAL_LIBS ${X11_Xrender_LIB})
endif (HAVE_XRENDER)
+if (FLTK_HAVE_CAIRO) # OPTION_CAIRO or OPTION_CAIROEXT
+ list (APPEND OPTIONAL_LIBS ${PKG_CAIRO_LIBRARIES})
+endif()
+
if (USE_PANGO)
### FIXME ### This needs to use the PKG_* variables directly
list (APPEND OPTIONAL_LIBS ${HAVE_LIB_PANGO} ${HAVE_LIB_PANGOCAIRO})
@@ -694,6 +702,10 @@ endif (UNIX AND OPTION_USE_WAYLAND)
FL_ADD_LIBRARY (fltk STATIC "${STATIC_FILES}")
target_link_libraries (fltk ${OPTIONAL_LIBS})
+if (FLTK_HAVE_CAIRO)
+ fl_target_link_directories (fltk PUBLIC "${PKG_CAIRO_LIBRARY_DIRS}")
+endif()
+
#######################################################################
FL_ADD_LIBRARY (fltk_forms STATIC "${FORMS_FILES}")
@@ -738,7 +750,8 @@ endif (OPENGL_FOUND)
if (OPTION_BUILD_SHARED_LIBS AND NOT MSVC)
FL_ADD_LIBRARY (fltk SHARED "${SHARED_FILES}")
- target_link_libraries (fltk_SHARED ${OPTIONAL_LIBS})
+ target_link_libraries (fltk_SHARED ${OPTIONAL_LIBS} ${PKG_CAIRO_LIBRARIES})
+ fl_target_link_directories (fltk_SHARED PUBLIC "${PKG_CAIRO_LIBRARY_DIRS}")
###################################################################
diff --git a/cairo/Fl_Cairo.cxx b/src/Fl_Cairo.cxx
similarity index 100%
rename from cairo/Fl_Cairo.cxx
rename to src/Fl_Cairo.cxx
diff --git a/src/Makefile b/src/Makefile
index 4e20b3e56..c025ff1d3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -26,6 +26,7 @@ CPPFILES = \
Fl_Browser_load.cxx \
Fl_Box.cxx \
Fl_Button.cxx \
+ Fl_Cairo.cxx \
Fl_Chart.cxx \
Fl_Check_Browser.cxx \
Fl_Check_Button.cxx \
@@ -452,7 +453,7 @@ $(LIBNAME): $(OBJECTS)
libfltk.so.$(FL_DSO_VERSION): $(OBJECTS)
echo $(DSOCOMMAND) $@ ...
- $(DSOCOMMAND) $@ $(OBJECTS) $(LDLIBS)
+ $(DSOCOMMAND) $@ $(OBJECTS) $(LDLIBS) $(CAIROLIBS)
$(RM) libfltk.so
$(LN) libfltk.so.$(FL_DSO_VERSION) libfltk.so
@@ -468,7 +469,7 @@ libfltk.$(FL_DSO_VERSION).dylib: $(OBJECTS)
-install_name $(libdir)/$@ \
-current_version $(FL_VERSION) \
-compatibility_version $(FL_DSO_VERSION).0 \
- $(OBJECTS) $(LDLIBS)
+ $(OBJECTS) $(LDLIBS) $(CAIROLIBS)
$(RM) libfltk.dylib
$(LN) libfltk.$(FL_DSO_VERSION).dylib libfltk.dylib
diff --git a/src/makedepend b/src/makedepend
index 74f3f2d87..bd259df7b 100644
--- a/src/makedepend
+++ b/src/makedepend
@@ -1279,6 +1279,23 @@ Fl_Button.o: ../FL/fl_utf8.h
Fl_Button.o: ../FL/Fl_Widget.H
Fl_Button.o: ../FL/Fl_Window.H
Fl_Button.o: ../FL/platform_types.h
+Fl_Cairo.o: ../FL/Enumerations.H
+Fl_Cairo.o: ../FL/Fl.H
+Fl_Cairo.o: ../FL/fl_attr.h
+Fl_Cairo.o: ../FL/Fl_Bitmap.H
+Fl_Cairo.o: ../FL/Fl_Cairo.H
+Fl_Cairo.o: ../FL/fl_casts.H
+Fl_Cairo.o: ../FL/fl_config.h
+Fl_Cairo.o: ../FL/Fl_Export.H
+Fl_Cairo.o: ../FL/Fl_Group.H
+Fl_Cairo.o: ../FL/Fl_Image.H
+Fl_Cairo.o: ../FL/fl_types.h
+Fl_Cairo.o: ../FL/fl_utf8.h
+Fl_Cairo.o: ../FL/Fl_Widget.H
+Fl_Cairo.o: ../FL/Fl_Window.H
+Fl_Cairo.o: ../FL/platform.H
+Fl_Cairo.o: ../FL/platform_types.h
+Fl_Cairo.o: ../FL/x11.H
Fl_Chart.o: ../config.h
Fl_Chart.o: ../FL/Enumerations.H
Fl_Chart.o: ../FL/Fl.H
@@ -2313,6 +2330,7 @@ Fl_Help_View.o: ../FL/Fl_RGB_Image.H
Fl_Help_View.o: ../FL/Fl_Scrollbar.H
Fl_Help_View.o: ../FL/Fl_Shared_Image.H
Fl_Help_View.o: ../FL/Fl_Slider.H
+Fl_Help_View.o: ../FL/Fl_String.H
Fl_Help_View.o: ../FL/fl_string_functions.h
Fl_Help_View.o: ../FL/fl_types.h
Fl_Help_View.o: ../FL/fl_utf8.h
@@ -3219,6 +3237,7 @@ Fl_Preferences.o: ../FL/fl_config.h
Fl_Preferences.o: ../FL/Fl_Export.H
Fl_Preferences.o: ../FL/Fl_Plugin.H
Fl_Preferences.o: ../FL/Fl_Preferences.H
+Fl_Preferences.o: ../FL/Fl_String.H
Fl_Preferences.o: ../FL/fl_string_functions.h
Fl_Preferences.o: ../FL/fl_types.h
Fl_Preferences.o: ../FL/fl_utf8.h
@@ -3613,6 +3632,22 @@ fl_shortcut.o: ../FL/platform_types.h
fl_shortcut.o: flstring.h
fl_shortcut.o: Fl_Screen_Driver.H
fl_shortcut.o: Fl_System_Driver.H
+Fl_Shortcut_Button.o: ../config.h
+Fl_Shortcut_Button.o: ../FL/Enumerations.H
+Fl_Shortcut_Button.o: ../FL/Fl.H
+Fl_Shortcut_Button.o: ../FL/fl_attr.h
+Fl_Shortcut_Button.o: ../FL/Fl_Button.H
+Fl_Shortcut_Button.o: ../FL/Fl_Cairo.H
+Fl_Shortcut_Button.o: ../FL/fl_casts.H
+Fl_Shortcut_Button.o: ../FL/fl_config.h
+Fl_Shortcut_Button.o: ../FL/fl_draw.H
+Fl_Shortcut_Button.o: ../FL/Fl_Export.H
+Fl_Shortcut_Button.o: ../FL/Fl_Shortcut_Button.H
+Fl_Shortcut_Button.o: ../FL/fl_types.h
+Fl_Shortcut_Button.o: ../FL/fl_utf8.h
+Fl_Shortcut_Button.o: ../FL/Fl_Widget.H
+Fl_Shortcut_Button.o: ../FL/platform_types.h
+Fl_Shortcut_Button.o: flstring.h
fl_show_colormap.o: ../config.h
fl_show_colormap.o: ../FL/Enumerations.H
fl_show_colormap.o: ../FL/Fl.H
@@ -3691,6 +3726,7 @@ Fl_Spinner.o: ../FL/Fl_Rect.H
Fl_Spinner.o: ../FL/Fl_Repeat_Button.H
Fl_Spinner.o: ../FL/Fl_Spinner.H
Fl_Spinner.o: ../FL/Fl_Widget.H
+Fl_String.o: ../FL/Fl_Export.H
Fl_String.o: ../FL/Fl_String.H
fl_string_functions.o: ../FL/Enumerations.H
fl_string_functions.o: ../FL/filename.H
@@ -4929,6 +4965,7 @@ gl_start.o: Fl_Gl_Window_Driver.H
numericsort.o: ../FL/filename.H
numericsort.o: ../FL/fl_config.h
numericsort.o: ../FL/Fl_Export.H
+numericsort.o: ../FL/fl_utf8.h
numericsort.o: ../FL/platform_types.h
print_button.o: ../FL/Enumerations.H
print_button.o: ../FL/Fl.H
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index b6bc2c303..6fb3b5105 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -197,7 +197,7 @@ endif (OPENGL_FOUND)
# Cairo demo - must also be built w/o Cairo (displays a message box)
if (FLTK_HAVE_CAIRO)
- CREATE_EXAMPLE (cairo_test cairo_test.cxx "fltk_cairo;fltk;cairo")
+ CREATE_EXAMPLE (cairo_test cairo_test.cxx "fltk;cairo")
else ()
CREATE_EXAMPLE (cairo_test cairo_test.cxx fltk)
endif (FLTK_HAVE_CAIRO)
@@ -257,7 +257,7 @@ if (OPTION_BUILD_SHARED_LIBS)
endif (OPENGL_FOUND)
if (FLTK_HAVE_CAIRO)
- CREATE_EXAMPLE (cairo_test-shared cairo_test.cxx "fltk_cairo_SHARED;fltk_SHARED;cairo")
+ CREATE_EXAMPLE (cairo_test-shared cairo_test.cxx "fltk_SHARED;cairo")
endif ()
endif (MSVC) # (not MSVC)
diff --git a/test/Makefile b/test/Makefile
index 2a5ea0980..96f8d36ae 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -682,5 +682,5 @@ shape$(EXEEXT): shape.o
cairo_test$(EXEEXT): cairo_test.o
echo Linking $@...
- $(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(CAIROFLAGS) $(LDFLAGS) -o $@ cairo_test.o $(LINKFLTK) $(LINKFLTKCAIRO) $(GLDLIBS)
+ $(CXX) $(ARCHFLAGS) $(CXXFLAGS) $(CAIROFLAGS) $(LDFLAGS) -o $@ cairo_test.o $(LINKFLTK) $(CAIROLIBS) $(GLDLIBS)
$(OSX_ONLY) ../fltk-config --post $@
diff --git a/test/makedepend b/test/makedepend
index 23dac2f28..323339151 100644
--- a/test/makedepend
+++ b/test/makedepend
@@ -2643,6 +2643,7 @@ twowin.o: ../FL/platform_types.h
unittests.o: ../FL/Enumerations.H
unittests.o: ../FL/filename.H
unittests.o: ../FL/Fl.H
+unittests.o: ../FL/fl_ask.H
unittests.o: ../FL/fl_attr.h
unittests.o: ../FL/Fl_Bitmap.H
unittests.o: ../FL/Fl_Box.H
@@ -2666,8 +2667,12 @@ unittests.o: ../FL/Fl_Preferences.H
unittests.o: ../FL/Fl_Rect.H
unittests.o: ../FL/Fl_RGB_Image.H
unittests.o: ../FL/Fl_Scrollbar.H
+unittests.o: ../FL/Fl_Simple_Terminal.H
unittests.o: ../FL/Fl_Slider.H
+unittests.o: ../FL/Fl_String.H
unittests.o: ../FL/fl_string_functions.h
+unittests.o: ../FL/Fl_Text_Buffer.H
+unittests.o: ../FL/Fl_Text_Display.H
unittests.o: ../FL/fl_types.h
unittests.o: ../FL/fl_utf8.h
unittests.o: ../FL/Fl_Valuator.H
@@ -2768,6 +2773,38 @@ unittest_complex_shapes.o: ../FL/Fl_Widget.H
unittest_complex_shapes.o: ../FL/Fl_Window.H
unittest_complex_shapes.o: ../FL/platform_types.h
unittest_complex_shapes.o: unittests.h
+unittest_core.o: ../FL/Enumerations.H
+unittest_core.o: ../FL/Fl.H
+unittest_core.o: ../FL/fl_attr.h
+unittest_core.o: ../FL/Fl_Bitmap.H
+unittest_core.o: ../FL/Fl_Cairo.H
+unittest_core.o: ../FL/fl_casts.H
+unittest_core.o: ../FL/fl_config.h
+unittest_core.o: ../FL/Fl_Device.H
+unittest_core.o: ../FL/Fl_Double_Window.H
+unittest_core.o: ../FL/fl_draw.H
+unittest_core.o: ../FL/Fl_Export.H
+unittest_core.o: ../FL/Fl_Graphics_Driver.H
+unittest_core.o: ../FL/Fl_Group.H
+unittest_core.o: ../FL/Fl_Image.H
+unittest_core.o: ../FL/Fl_Pixmap.H
+unittest_core.o: ../FL/Fl_Plugin.H
+unittest_core.o: ../FL/Fl_Preferences.H
+unittest_core.o: ../FL/Fl_Rect.H
+unittest_core.o: ../FL/Fl_RGB_Image.H
+unittest_core.o: ../FL/Fl_Scrollbar.H
+unittest_core.o: ../FL/Fl_Simple_Terminal.H
+unittest_core.o: ../FL/Fl_Slider.H
+unittest_core.o: ../FL/Fl_String.H
+unittest_core.o: ../FL/Fl_Text_Buffer.H
+unittest_core.o: ../FL/Fl_Text_Display.H
+unittest_core.o: ../FL/fl_types.h
+unittest_core.o: ../FL/fl_utf8.h
+unittest_core.o: ../FL/Fl_Valuator.H
+unittest_core.o: ../FL/Fl_Widget.H
+unittest_core.o: ../FL/Fl_Window.H
+unittest_core.o: ../FL/platform_types.h
+unittest_core.o: unittests.h
unittest_fast_shapes.o: ../config.h
unittest_fast_shapes.o: ../FL/Enumerations.H
unittest_fast_shapes.o: ../FL/Fl.H