Remove libfltk_cairo (fltk::cairo)
Build and Test / build-linux (push) Waiting to run
Build and Test / build-wayland (push) Waiting to run
Build and Test / build-macos (push) Waiting to run
Build and Test / build-windows (push) Waiting to run

This library is no longer needed and was "empty" for backwards
compatibility since FLTK 1.4.0.
This commit is contained in:
Albrecht Schlosser
2025-03-15 23:34:56 +01:00
parent 2e1730d2f0
commit b252e5e45c
15 changed files with 33 additions and 133 deletions
+4 -6
View File
@@ -7,7 +7,7 @@ assignees: ''
--- ---
**Describe the bug** **Description of the Bug Report**
A clear and concise description of what the bug is. A clear and concise description of what the bug is.
**To Reproduce** **To Reproduce**
@@ -38,11 +38,9 @@ Please complete the following information and delete non-applicable lines:
- If from Git, commit: [e.g. 7d58e2385452] - If from Git, commit: [e.g. 7d58e2385452]
**FLTK Configure / Build Options** **FLTK Configure / Build Options**
Please add the complete configure and build command lines if you built FLTK yourself. Please add the complete CMake and build command lines if you built FLTK yourself.
Please include all configure or CMake options and add all CMake options you changed Please add all CMake options you changed by using CMake GUI tools (if any).
by using CMake GUI tools (if any). - cmake -G"..." -D CMAKE_BUILD_TYPE=Debug ...
- ./configure --enable-cairo ...
- cmake -G"..." -DCMAKE_BUILD_TYPE=Debug ...
**Operating System / Platform:** **Operating System / Platform:**
Please be as precise as possible, e.g. "Linux: Ubuntu 20.04" Please be as precise as possible, e.g. "Linux: Ubuntu 20.04"
+1 -1
View File
@@ -117,7 +117,7 @@ else(CMAKE_CROSSCOMPILING)
_fltk_make_alias(fltk-options fltk::options) _fltk_make_alias(fltk-options fltk::options)
_fltk_make_alias(fltk-options-cmd fltk::options-cmd) _fltk_make_alias(fltk-options-cmd fltk::options-cmd)
foreach(target cairo forms gl images jpeg png z) foreach(target forms gl images jpeg png z)
_fltk_make_alias(fltk_${target} fltk::${target}) _fltk_make_alias(fltk_${target} fltk::${target})
_fltk_make_alias(fltk_${target}-shared fltk::${target}-shared) _fltk_make_alias(fltk_${target}-shared fltk::${target}-shared)
endforeach() endforeach()
+1 -15
View File
@@ -2,7 +2,7 @@
# A function used by the CMake build system for the Fast Light Tool Kit (FLTK). # A function used by the CMake build system for the Fast Light Tool Kit (FLTK).
# Originally written by Michael Surette # Originally written by Michael Surette
# #
# Copyright 1998-2024 by Bill Spitzak and others. # Copyright 1998-2025 by Bill Spitzak and others.
# #
# This library is free software. Distribution and use rights are outlined in # 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 # the file "COPYING" which should have been included with this file. If this
@@ -114,20 +114,6 @@ function(fl_create_example NAME SOURCES LIBRARIES)
set_target_properties (${TARGET_NAME} PROPERTIES ENABLE_EXPORTS TRUE) set_target_properties (${TARGET_NAME} PROPERTIES ENABLE_EXPORTS TRUE)
### *FIXME* Remove the entire 'if' block below when verified:
if(0) # This should no longer be necessary (implied by linking the libs)
# we must link all programs with Cairo if option CAIROEXT is enabled
if(FLTK_HAVE_CAIROEXT)
target_link_libraries(${TARGET_NAME} PRIVATE ${PKG_CAIRO_LIBRARIES})
endif()
if(FLTK_HAVE_CAIRO AND PKG_CAIRO_LIBRARY_DIRS)
target_link_directories(${TARGET_NAME} PRIVATE ${PKG_CAIRO_LIBRARY_DIRS})
endif()
endif() # This should no longer be necessary (implied by linking the libs)
# Search the current binary directory for header files created by CMake # Search the current binary directory for header files created by CMake
# or fluid and the source folder for other headers included by test programs # or fluid and the source folder for other headers included by test programs
+1 -1
View File
@@ -29,7 +29,7 @@
# which can be applied to particular targets and source files only. # which can be applied to particular targets and source files only.
# #
# This could remove some of these potential build conflicts, for # This could remove some of these potential build conflicts, for
# instance # if the bundled image libs and Cairo or Pango are used # instance if the bundled image libs and Cairo or Pango are used
# together (Pango depends on Cairo and Cairo depends on libpng). # together (Pango depends on Cairo and Cairo depends on libpng).
# However, this is not a proper solution! # However, this is not a proper solution!
# #
+1 -11
View File
@@ -140,16 +140,6 @@ endif(debug_build)
unset(debug_build) unset(debug_build)
#######################################################################
# Build a dummy ("empty") Cairo library for backwards compatibility.
# This should be removed in the next minor release after 1.4.x, likely
# in FLTK 1.5.0.
#######################################################################
if(FLTK_HAVE_CAIRO)
add_subdirectory(cairo)
endif()
####################################################################### #######################################################################
# build the standard FLTK libraries # build the standard FLTK libraries
####################################################################### #######################################################################
@@ -380,7 +370,7 @@ message(STATUS "End of Configuration Summary --\n")
if(0) # debug built library and fluid targets if(0) # debug built library and fluid targets
message(STATUS "------------------------ TARGETS ------------------------") message(STATUS "------------------------ TARGETS ------------------------")
foreach(tgt fltk fluid fluid-cmd options options-cmd images gl forms cairo jpeg png z) foreach(tgt fltk fluid fluid-cmd options options-cmd images gl forms jpeg png z)
if(TARGET fltk::${tgt}) if(TARGET fltk::${tgt})
message("Target: fltk::${tgt}") message("Target: fltk::${tgt}")
# fl_debug_target(fltk::${tgt}) # fl_debug_target(fltk::${tgt})
+9 -7
View File
@@ -1,7 +1,7 @@
// //
// Main header file for the Fast Light Tool Kit (FLTK). // Main header file for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2024 by Bill Spitzak and others. // Copyright 1998-2025 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // 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 // the file "COPYING" which should have been included with this file. If this
@@ -1449,7 +1449,7 @@ public:
In this last case, you don't need anymore to call Fl::cairo_make_current(). In this last case, you don't need anymore to call Fl::cairo_make_current().
You can use Fl::cairo_cc() to get the current Cairo context anytime. You can use Fl::cairo_cc() to get the current Cairo context anytime.
\note Only available when configure has the --enable-cairo option \note Only available if built with CMake option FLTK_OPTION_CAIRO_WINDOW=ON.
*/ */
static void cairo_autolink_context(bool alink) { static void cairo_autolink_context(bool alink) {
cairo_state_.autolink(alink); cairo_state_.autolink(alink);
@@ -1460,8 +1460,9 @@ public:
\retval false if no Cairo context autolink is made for each window. \retval false if no Cairo context autolink is made for each window.
\retval true if any fltk window is attached a Cairo context when it \retval true if any fltk window is attached a Cairo context when it
is current. \see void cairo_autolink_context(bool alink) is current. \see void cairo_autolink_context(bool alink)
\note Only available when configure has the --enable-cairo option
*/ \note Only available if built with CMake option FLTK_OPTION_CAIRO_EXT=ON.
*/
static bool cairo_autolink_context() { static bool cairo_autolink_context() {
return cairo_state_.autolink(); return cairo_state_.autolink();
} }
@@ -1473,7 +1474,8 @@ public:
/** Sets the current Cairo context to \p c. /** Sets the current Cairo context to \p c.
Set \p own to true if you want fltk to handle this cc deletion. Set \p own to true if you want fltk to handle this cc deletion.
\note Only available when configure has the --enable-Cairo option
\note Only available if built with CMake option FLTK_OPTION_CAIRO_WINDOW=ON.
*/ */
static void cairo_cc(cairo_t *c, bool own=false) { static void cairo_cc(cairo_t *c, bool own=false) {
cairo_state_.cc(c, own); cairo_state_.cc(c, own);
@@ -1498,8 +1500,8 @@ public:
Fl::cairo_flush(cc); // flush Cairo drawings to the device Fl::cairo_flush(cc); // flush Cairo drawings to the device
\endcode \endcode
If you configure FLTK with \c '--enable-cairo' or CMake option If you configure FLTK with CMake option
\c 'FLTK_OPTION_CAIRO_WINDOW' (i.e. without \c '--enable-cairoext' or CMake option \c 'FLTK_OPTION_CAIRO_WINDOW' (i.e. without CMake option
\c 'FLTK_OPTION_CAIRO_EXT') or if you don't enable the \c 'autolink' Cairo \c 'FLTK_OPTION_CAIRO_EXT') or if you don't enable the \c 'autolink' Cairo
context you may do the equivalent to use Cairo drawings in an context you may do the equivalent to use Cairo drawings in an
overridden draw() method of derived classes by using overridden draw() method of derived classes by using
+3 -4
View File
@@ -1,7 +1,7 @@
// //
// Main Cairo support header file for the Fast Light Tool Kit (FLTK). // Main Cairo support header file for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2023 by Bill Spitzak and others. // Copyright 1998-2025 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // 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 // the file "COPYING" which should have been included with this file. If this
@@ -49,9 +49,8 @@
A private internal & unique corresponding object is created to A private internal & unique corresponding object is created to
permit cairo context state handling while keeping it opaque. permit cairo context state handling while keeping it opaque.
For internal use only. For internal use only.
\note Only available when configure has the --enable-cairo or \note Only available if one or both of the CMake options
--enable-cairoext option or one or both of the CMake options FLTK_OPTION_CAIRO_WINDOW or FLTK_OPTION_CAIRO_EXT is set (ON).
FLTK_OPTION_CAIRO_WINDOW or FLTK_OPTION_CAIRO_EXT is set (ON)
*/ */
class FL_EXPORT Fl_Cairo_State { class FL_EXPORT Fl_Cairo_State {
public: public:
+2 -2
View File
@@ -1,7 +1,7 @@
// //
// Fl_Cairo_Window header file for the Fast Light Tool Kit (FLTK). // Fl_Cairo_Window header file for the Fast Light Tool Kit (FLTK).
// //
// Copyright 1998-2023 by Bill Spitzak and others. // Copyright 1998-2025 by Bill Spitzak and others.
// //
// This library is free software. Distribution and use rights are outlined in // 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 // the file "COPYING" which should have been included with this file. If this
@@ -78,7 +78,7 @@
\see test/cairo_test.cxx \see test/cairo_test.cxx
\note Class Fl_Cairo_Window requires the FLTK library to have been built with \note Class Fl_Cairo_Window requires the FLTK library to have been built with
CMake option FLTK_OPTION_CAIRO_WINDOW or configure --enable-cairo. CMake option FLTK_OPTION_CAIRO_WINDOW or FLTK_OPTION_CAIRO_EXT.
\note You can alternatively define your custom Cairo FLTK window, \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
+4 -4
View File
@@ -825,10 +825,10 @@ specific prefixes and postfixes. For instance, on Linux/Unix 'fltk' is libfltk.a
and the shared library (fltk-shared) is libfltk.so.1.4.0 (in FLTK 1.4.0) with and the shared library (fltk-shared) is libfltk.so.1.4.0 (in FLTK 1.4.0) with
additional system specific links. additional system specific links.
Note: since FLTK 1.4.0 the library fltk_cairo is no longer necessary and Note: since FLTK 1.5.0 the library fltk_cairo is no longer necessary and
should be removed from CMake files of user projects. fltk_cairo is now an must be removed from CMake files of user projects. fltk_cairo was an
empty library solely for backwards compatibility and will be removed in the empty library solely for backwards compatibility in FLTK 1.4 and has been
future. removed from FLTK 1.5.
3.2 Library Aliases 3.2 Library Aliases
+1 -1
View File
@@ -36,7 +36,7 @@ CJK text-input methods, as well as dead and compose keys are supported.
On Linux and FreeBSD systems, the FLTK library is by default configured so FLTK On Linux and FreeBSD systems, the FLTK library is by default configured so FLTK
apps do all their windowing through the Wayland protocol, all their graphics apps do all their windowing through the Wayland protocol, all their graphics
withCairo or EGL, and all text-drawing with Pango. If no Wayland compositor with Cairo or EGL, and all text-drawing with Pango. If no Wayland compositor
is available at run-time, FLTK apps fall back to using X11 for windowing. is available at run-time, FLTK apps fall back to using X11 for windowing.
Cairo and Pango remain used for graphics and text, respectively. Cairo and Pango remain used for graphics and text, respectively.
-43
View File
@@ -1,43 +0,0 @@
#
# 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
#
########################################################################
# 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.
########################################################################
# Build dummy fltk_cairo library
set(cairo_SRCS cairo_dummy.c)
fl_add_library(fltk_cairo STATIC "${cairo_SRCS}")
target_link_libraries(fltk_cairo PUBLIC fltk::fltk)
# Build shared dummy library(optional)
if(FLTK_BUILD_SHARED_LIBS)
fl_add_library(fltk_cairo SHARED "${cairo_SRCS}")
target_link_libraries(fltk_cairo-shared PUBLIC fltk::fltk-shared)
endif(FLTK_BUILD_SHARED_LIBS)
set(FLTK_LIBRARIES ${FLTK_LIBRARIES} PARENT_SCOPE)
set(FLTK_LIBRARIES_SHARED ${FLTK_LIBRARIES_SHARED} PARENT_SCOPE)
-28
View File
@@ -1,28 +0,0 @@
/*
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;
}
+2 -6
View File
@@ -341,11 +341,7 @@ The libraries are named `fltk.lib`, `fltk_forms.lib`, `fltk_gl.lib`, and
\note \note
The separate \p fltk_cairo library is no longer necessary since FLTK 1.4.0. The separate \p fltk_cairo library is no longer necessary since FLTK 1.4.0.
However, this release of FLTK builds a dummy `fltk_cairo` library for It is no longer built since FLTK 1.5.0.
backwards compatibility. You are advised to remove the usage of
the `fltk_cairo` library from your build systems and tools.
<b>The `fltk_cairo` library will be removed in a future release.</b>
As before, the \p fltk-config script can be used to get the options that are As before, the \p fltk-config script can be used to get the options that are
required by your linker: required by your linker:
@@ -370,7 +366,7 @@ c++ ... `fltk-config --use-forms --use-gl --use-images --ldflags`
The option `--use-cairo` may be used to build your program with Cairo libs if The option `--use-cairo` may be used to build your program with Cairo libs if
you use Cairo in your code. It does no longer include the `fltk_cairo` lib but you use Cairo in your code. It does no longer include the `fltk_cairo` lib but
all necessary Cairo compiler flags and Cairo libs, if and only if FLTK has been all necessary Cairo compiler flags and Cairo libs, if and only if FLTK has been
built with the optional Cairo support by configure or CMake. configured with the optional Cairo support by CMake.
Finally, you can use the \p fltk-config script to compile one or more source Finally, you can use the \p fltk-config script to compile one or more source
files as a FLTK program. files as a FLTK program.
+2 -2
View File
@@ -58,8 +58,8 @@ int main(int argc, char **argv) {
#include <FL/fl_ask.H> #include <FL/fl_ask.H>
int main(int argc, char **argv) { int main(int argc, char **argv) {
fl_message_title("This program needs a Cairo enabled FLTK library"); fl_message_title("This program needs a Cairo enabled FLTK library");
fl_message("Please configure FLTK with Cairo enabled (--enable-cairo or --enable-cairoext)\n" fl_message("Please configure FLTK with Cairo enabled by one of the CMake options\n"
"or one of the CMake options FLTK_OPTION_CAIRO_WINDOW or FLTK_OPTION_CAIRO_EXT, respectively."); "FLTK_OPTION_CAIRO_WINDOW or FLTK_OPTION_CAIRO_EXT, respectively.");
return 0; return 0;
} }
#endif // (FLTK_HAVE_CAIRO) #endif // (FLTK_HAVE_CAIRO)
+2 -2
View File
@@ -30,7 +30,7 @@
/* /*
* FLTK_HAVE_CAIRO * FLTK_HAVE_CAIRO
* *
* Do we have the Cairo library available? * Do we have the Fl_Cairo_Window support?
*/ */
#cmakedefine FLTK_HAVE_CAIRO 1 #cmakedefine FLTK_HAVE_CAIRO 1
@@ -71,7 +71,7 @@
* Do we use Cairo to draw to the display? * Do we use Cairo to draw to the display?
* *
*/ */
#cmakedefine FLTK_USE_CAIRO 1 #cmakedefine FLTK_USE_CAIRO 1