mirror of https://github.com/fltk/fltk
CMake: build shared libs with OPTION_CAIROEXT (issue #250)
- remove separate libfltk_cairo to avoid cyclic dependencies, but - keep a dummy libfltk_cairo in 1.4.0 for backwards compatibility - move cairo/Fl_Cairo.cxx to src/Fl_Cairo.cxx - add preliminary Cairo support for Visual Studio (MSVC) Static linking is not affected by this change, but users building with hand-made Makefiles will have to remove libfltk_cairo starting with FLTK 1.4.0. The dummy library can be linked for backwards compatibility but it will be removed later (in 1.4.x or 1.5.0). The shared FLTK library libfltk.{so|dylib|dll|..} depends on libcairo if and only if FLTK is built with one of the Cairo options. This has always been the case for OPTION_CAIROEXT but is now also true if only OPTION_CAIRO is selected, i.e. FLTK programs linked with a Cairo enabled shared FLTK library will also be linked with libcairo. The same is true for configure options --enable-cairo and --enable-cairoext, respectively. Preliminary Cairo support for MSVC now detects a Cairo installation using the CMake variable FLTK_CAIRO_DIR which must be set by the user. Note that this feature is temporary and may be changed in the future for a better and more comfortable version.
This commit is contained in:
parent
e32d4bcab9
commit
5175192755
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
#######################################################################
|
||||
|
|
|
@ -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))
|
||||
|
|
108
FL/Fl_Cairo.H
108
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 <tt>\#include \<FL/Fl.H></tt>
|
||||
\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 \<FL/Fl.H> by including \<FL/fl_config.h>.
|
||||
*/
|
||||
|
||||
#ifndef FL_CAIRO_H
|
||||
# define FL_CAIRO_H
|
||||
#define FL_CAIRO_H
|
||||
|
||||
# include <FL/fl_config.h> // build configuration
|
||||
#include <FL/Fl.H>
|
||||
|
||||
# ifdef FLTK_HAVE_CAIRO
|
||||
|
||||
// Cairo is currently supported for the following platforms:
|
||||
// Win32, Apple Quartz, X11
|
||||
|
||||
# include <FL/Fl_Export.H>
|
||||
|
||||
# include <cairo.h>
|
||||
|
||||
/**
|
||||
\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
|
||||
|
|
|
@ -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 <FL/Fl.H>
|
||||
# include <FL/Fl_Double_Window.H>
|
||||
|
||||
|
@ -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:
|
||||
|
|
4
Makefile
4
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.
|
||||
|
|
|
@ -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)
|
||||
|
||||
#######################################################################
|
||||
|
|
|
@ -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; )
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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.])
|
||||
])
|
||||
])
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 $<TARGET_FILE:fluid> 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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <FL/...>
|
||||
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}")
|
||||
|
||||
###################################################################
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 $@
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue