Cairo increment 2: Finer cairo granularity, less deps, new fltk_cairo lib
+ added new USE_CAIRO config preprocessor def. to differentiate from HAVE_CAIRO so that we can use the cairo lib without forcing the full fltk lib to be linked against it. In that case, cairo autolink context functionality which needs fltk lib instrumentation is disabled. + added new --enable-cairoext, which correspond to previous --enable-cairo. now, --enable-cairo only adds HAVE_CAIRO def. and keeps fltk lib from referencing cairo. In both cases (--enable-cairo & --enable-cairoext), a new fltk_cairo lib is created. This lib, similarly to local versions of png,jpeg and zlib, is not generated if cairo is not enabled. + added cairo to fltk-config : now new --use-cairo flag is available + modified all unix like makefiles to now generate minimum cairo deps and also new libfltk_cairo lib. + added new cairo subdir to permit conditional fltk_cairo lib generation. + vc2005 project minimum update to compile without be broken, but still needs to create a similar fltk_cairo independent lib. For now, it works as before with a dedicated cairo env. similar to --enable-cairoext context in unix. + regression tested ok with cairo disabled on win32, mac osx, mingw. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6462 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
7a5e64a4f3
commit
268ffc6ef2
@ -44,6 +44,7 @@
|
||||
# include <cairo-win32.h>
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
# include <cairo-quartz.h>
|
||||
# else
|
||||
# error Cairo is not supported on that platform.
|
||||
# endif
|
||||
|
||||
@ -65,7 +66,7 @@ public:
|
||||
|
||||
// access attributes
|
||||
cairo_t* cc() const {return cc_;} ///< Gets the current cairo context
|
||||
bool autolink() const {return autolink_;} ///< Sets the autolink option. See Fl::cairo_autolink_context(bool)
|
||||
bool autolink() const {return autolink_;} ///< Gets the autolink option. See Fl::cairo_autolink_context(bool)
|
||||
/** Sets the current cairo context, \a own indicates cc deletion is handle externally by user */
|
||||
void cc(cairo_t* c, bool own=true) {
|
||||
if (cc_ && own_cc_) cairo_destroy(cc_);
|
||||
@ -73,7 +74,7 @@ public:
|
||||
if (!cc_) window_=0;
|
||||
own_cc_=own;
|
||||
}
|
||||
void autolink(bool b) {autolink_ = b;} ///< Gets the autolink option
|
||||
void autolink(bool b); ///< Sets the autolink option, only available with --enable-cairoext
|
||||
void window(void* w) {window_=w;} ///< Sets the window \a 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 \a c to keep track on
|
||||
|
2
Makefile
2
Makefile
@ -27,7 +27,7 @@
|
||||
|
||||
include makeinclude
|
||||
|
||||
DIRS = $(IMAGEDIRS) src fluid test documentation
|
||||
DIRS = $(IMAGEDIRS) $(CAIRODIR) src fluid test documentation
|
||||
|
||||
all: makeinclude fltk-config
|
||||
for dir in $(DIRS); do\
|
||||
|
@ -34,8 +34,21 @@
|
||||
|
||||
// static Fl module initialization :
|
||||
Fl_Cairo_State Fl::cairo_state_; ///< contains all necesary info for current cairo context mapping
|
||||
|
||||
|
||||
// Fl cairo features implementation
|
||||
|
||||
// Fl_Cairo_State class impl
|
||||
|
||||
void Fl_Cairo_State::autolink(bool b) {
|
||||
#ifdef USE_CAIRO
|
||||
autolink_ = b;
|
||||
#else
|
||||
Fl::fatal("In Fl::autolink(bool) : Cairo autolink() feature is only "
|
||||
"available with the enable-cairoext configure option, now quitting.");
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
Provides a corresponding cairo context for window \a wi.
|
||||
This is needed in a draw() override if Fl::cairo_autolink_context()
|
||||
@ -142,6 +155,10 @@ cairo_t * Fl::cairo_make_current(void *gc, int W, int H) {
|
||||
Fl::cairo_cc(c);
|
||||
return c;
|
||||
}
|
||||
#else
|
||||
// just don't leave the libfltk_cairo lib empty to avoid warnings
|
||||
#include <FL/Fl_Export.H>
|
||||
FL_EXPORT int fltk_cairo_dummy() { return 1;}
|
||||
#endif // HAVE_CAIRO
|
||||
|
||||
//
|
173
cairo/Makefile
Normal file
173
cairo/Makefile
Normal file
@ -0,0 +1,173 @@
|
||||
#
|
||||
# "$Id: Makefile 5667 2007-02-07 02:35:44Z mike $"
|
||||
#
|
||||
# PNG library makefile for the Fast Light Toolkit (FLTK).
|
||||
#
|
||||
# Copyright 1997-2007 by Easy Software Products.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Library General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
# USA.
|
||||
#
|
||||
# Please report all bugs and problems to "fltk-bugs@fltk.org".
|
||||
#
|
||||
|
||||
include ../makeinclude
|
||||
|
||||
#
|
||||
# Object files...
|
||||
#
|
||||
|
||||
CAIROOBJECTS = Fl_Cairo.o
|
||||
|
||||
$(CAIROLIBNAME): $(CAIROOBJECTS)
|
||||
echo $(LIBCOMMAND) $@ ...
|
||||
$(RM) $@
|
||||
$(LIBCOMMAND) $@ $(CAIROOBJECTS)
|
||||
$(RANLIB) $@
|
||||
|
||||
libfltk_cairo.so.1.3: $(CAIROOBJECTS) libfltk.so.1.3
|
||||
echo $(DSOCOMMAND) $@ ...
|
||||
$(DSOCOMMAND) $@ $(CAIROOBJECTS) -L. $(IMAGELIBS) -lfltk
|
||||
$(RM) libfltk_cairo.so
|
||||
$(LN) libfltk_cairo.so.1.3 libfltk_cairo.so
|
||||
|
||||
libfltk_cairo.sl.1.3: $(CAIROOBJECTS) libfltk.sl.1.3
|
||||
echo $(DSOCOMMAND) $@ ...
|
||||
$(DSOCOMMAND) $@ $(CAIROOBJECTS) -L. $(IMAGELIBS) -lfltk
|
||||
$(RM) libfltk_cairo.sl
|
||||
$(LN) libfltk_cairo.sl.1.3 libfltk_cairo.sl
|
||||
|
||||
libfltk_cairo.1.3.dylib: $(CAIROOBJECTS) libfltk.1.3.dylib
|
||||
echo $(DSOCOMMAND) $@ ...
|
||||
$(DSOCOMMAND) $@ \
|
||||
-install_name $(libdir)/$@ \
|
||||
-current_version 1.3.0 \
|
||||
-compatibility_version 1.3.0 \
|
||||
$(CAIROOBJECTS) -L. $(LDLIBS) $(IMAGELIBS) -lfltk
|
||||
$(RM) libfltk_cairo.dylib
|
||||
$(LN) libfltk_cairo.1.3.dylib libfltk_cairo.dylib
|
||||
|
||||
libfltk_cairo_s.a: $(CAIROOBJECTS)
|
||||
echo $(DSOCOMMAND) libfltk_cairo_s.o ...
|
||||
$(DSOCOMMAND) libfltk_cairo_s.o $(CAIROOBJECTS)
|
||||
echo $(LIBCOMMAND) libfltk_cairo_s.a libfltk_cairo_s.o
|
||||
$(RM) $@
|
||||
$(LIBCOMMAND) libfltk_cairo_s.a libfltk_cairo_s.o
|
||||
$(CHMOD) +x libfltk_cairo_s.a
|
||||
|
||||
|
||||
cygfltknox_cairo-1.3.dll: $(CAIROLIBNAME) cygfltknox-1.3.dll
|
||||
echo $(DSOCOMMAND) $(CAIROLIBNAME) ...
|
||||
$(DSOCOMMAND) $(CAIROLIBNAME) -Wl,--no-whole-archive \
|
||||
-Wl,--out-implib=libfltk_cairo.dll.a \
|
||||
-L. -lfltk $(CAIROLIBS) $(LDLIBS)
|
||||
|
||||
mgwfltknox_cairo-1.3.dll: $(CAIROLIBNAME) mgwfltknox-1.3.dll
|
||||
echo $(DSOCOMMAND) $(CAIROLIBNAME) ...
|
||||
$(DSOCOMMAND) $(CAIROLIBNAME) -Wl,--no-whole-archive \
|
||||
-Wl,--out-implib=libfltk_cairo.dll.a \
|
||||
-L. -lfltk $(CAIROLIBS) $(LDLIBS)
|
||||
|
||||
#
|
||||
# Make all of the targets...
|
||||
#
|
||||
|
||||
all: $(CAIROLIBNAME) $(CAIRODSONAME)
|
||||
|
||||
|
||||
#
|
||||
# Clean all of the targets and object files...
|
||||
#
|
||||
|
||||
clean:
|
||||
-$(RM) *.o *.dll.a core.* *~ *.bak *.bck
|
||||
-$(RM) $(CAIROOBJECTS) $(CAIROLIBNAME) $(CAIRODSONAME) \
|
||||
libfltk_cairo.so libfltk_cairo.sl libfltk_cairo.dylib
|
||||
|
||||
#
|
||||
# Install everything...
|
||||
#
|
||||
|
||||
install: $(CAIROLIBNAME) $(CAIRODSONAME)
|
||||
echo "Installing libfltk_cairo$(LIBEXT) in $(libdir)..."
|
||||
-$(INSTALL_DIR) $(DESTDIR)$(libdir)
|
||||
$(INSTALL_LIB) $(CAIROLIBNAME) $(DESTDIR)$(libdir)
|
||||
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo.so.1.3; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.so*;\
|
||||
$(INSTALL_LIB) libfltk_cairo.so.1.3 $(DESTDIR)$(libdir); \
|
||||
$(LN) libfltk_cairo.so.1.3 $(DESTDIR)$(libdir)/libfltk_cairo.so;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo.sl.1.3; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.sl*;\
|
||||
$(INSTALL_LIB) libfltk_cairo.sl.1.3 $(DESTDIR)$(libdir); \
|
||||
$(LN) libfltk_cairo.sl.1.3 $(DESTDIR)$(libdir)/libfltk_cairo.sl;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo.1.3.dylib; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.*dylib;\
|
||||
$(INSTALL_LIB) libfltk_cairo.1.3.dylib $(DESTDIR)$(libdir); \
|
||||
$(LN) libfltk_cairo.1.3.dylib $(DESTDIR)$(libdir)/libfltk_cairo.dylib;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo_s.a; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo_s.a;\
|
||||
$(INSTALL_LIB) libfltk_cairo_s.a $(DESTDIR)$(libdir); \
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xcygfltknox_cairo-1.3.dll; then\
|
||||
$(RM) $(DESTDIR)$(bindir)/$(CAIRODSONAME); \
|
||||
$(INSTALL_LIB) $(CAIRODSONAME) $(DESTDIR)$(bindir); \
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.dll.a;\
|
||||
$(INSTALL_LIB) libfltk_cairo.dll.a $(DESTDIR)$(libdir); \
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xmgwfltknox_cairo-1.3.dll; then\
|
||||
$(RM) $(DESTDIR)$(bindir)/$(CAIRODSONAME); \
|
||||
$(INSTALL_LIB) $(CAIRODSONAME) $(DESTDIR)$(bindir); \
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.dll.a;\
|
||||
$(INSTALL_LIB) libfltk_cairo.dll.a $(DESTDIR)$(libdir); \
|
||||
fi
|
||||
#
|
||||
# Uninstall everything...
|
||||
#
|
||||
|
||||
uninstall:
|
||||
echo "Uninstalling libfltk_cairo$(LIBEXT) in $(libdir)..."
|
||||
if test x$(CAIROLIBNAME) != x; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/$(CAIROLIBNAME);\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo.so.1.3; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.so*;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo.sl.1.3; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.sl*;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo.1.3.dylib; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.*dylib;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xlibfltk_cairo_s.a; then\
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo_s.a;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xcygfltknox_cairo-1.3.dll; then\
|
||||
$(RM) $(DESTDIR)$(bindir)/$(CAIRODSONAME); \
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.dll.a;\
|
||||
fi
|
||||
if test x$(CAIRODSONAME) = xmgwfltknox_cairo-1.3.dll; then\
|
||||
$(RM) $(DESTDIR)$(bindir)/$(CAIRODSONAME); \
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_cairo.dll.a;\
|
||||
fi
|
||||
|
||||
$(CAIROOBJECTS): ../makeinclude
|
||||
|
||||
#
|
||||
# End of "$Id: Makefile 5667 2007-02-07 02:35:44Z mike $".
|
||||
#
|
@ -246,6 +246,15 @@
|
||||
#undef HAVE_LIBZ
|
||||
#undef HAVE_LIBJPEG
|
||||
|
||||
/*
|
||||
* USE_CAIRO
|
||||
*
|
||||
* Do we have the cairo library available and want extended cairo use in fltk ?
|
||||
* will implies to link cairo.lib in all fltk based apps.
|
||||
*/
|
||||
|
||||
#undef USE_CAIRO
|
||||
|
||||
/*
|
||||
* HAVE_CAIRO
|
||||
*
|
||||
|
55
configure.in
55
configure.in
@ -97,11 +97,13 @@ LIBNAME="../lib/libfltk.a"
|
||||
FLLIBNAME="../lib/libfltk_forms.a"
|
||||
GLLIBNAME="../lib/libfltk_gl.a"
|
||||
IMGLIBNAME="../lib/libfltk_images.a"
|
||||
CAIROLIBNAME="../lib/libfltk_cairo.a"
|
||||
|
||||
AC_SUBST(FLLIBNAME)
|
||||
AC_SUBST(GLDEMOS)
|
||||
AC_SUBST(GLLIBNAME)
|
||||
AC_SUBST(IMGLIBNAME)
|
||||
AC_SUBST(CAIROLIBNAME)
|
||||
AC_SUBST(LIBEXT)
|
||||
AC_SUBST(LIBNAME)
|
||||
AC_SUBST(LINKFLTK)
|
||||
@ -131,6 +133,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.$FL_API_VERSION.dylib"
|
||||
GLDSONAME="libfltk_gl.$FL_API_VERSION.dylib"
|
||||
IMGDSONAME="libfltk_images.$FL_API_VERSION.dylib"
|
||||
CAIRODSONAME="libfltk_cairo.$FL_API_VERSION.dylib"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -dynamiclib -lc -o"
|
||||
;;
|
||||
|
||||
@ -139,6 +142,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib"; then
|
||||
DSOLINK="-R$libdir"
|
||||
@ -149,6 +153,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.sl.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.sl.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.sl.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.sl.$FL_API_VERSION"
|
||||
DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
@ -159,6 +164,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32" -a "x$libdir" != "x/usr/lib64"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
@ -169,6 +175,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
@ -179,6 +186,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o"
|
||||
if test "x$libdir" != "x/usr/lib"; then
|
||||
DSOLINK="-Wl,-rpath,$libdir"
|
||||
@ -189,6 +197,7 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms_s.a"
|
||||
GLDSONAME="libfltk_gl_s.a"
|
||||
IMGDSONAME="libfltk_images_s.a"
|
||||
CAIRODSONAME="libfltk_cairo_s.a"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o"
|
||||
SHAREDSUFFIX="_s"
|
||||
;;
|
||||
@ -199,11 +208,13 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="mgwfltknox_forms-$FL_API_VERSION.dll"
|
||||
GLDSONAME="mgwfltknox_gl-$FL_API_VERSION.dll"
|
||||
IMGDSONAME="mgwfltknox_images-$FL_API_VERSION.dll"
|
||||
CAIRODSONAME="mgwfltknox_cairo-$FL_API_VERSION.dll"
|
||||
else
|
||||
DSONAME="cygfltknox-$FL_API_VERSION.dll"
|
||||
FLDSONAME="cygfltknox_forms-$FL_API_VERSION.dll"
|
||||
GLDSONAME="cygfltknox_gl-$FL_API_VERSION.dll"
|
||||
IMGDSONAME="cygfltknox_images-$FL_API_VERSION.dll"
|
||||
CAIRODSONAME="cygfltknox_cairo-$FL_API_VERSION.dll"
|
||||
fi
|
||||
#-----------------------------------------------------------
|
||||
# -Wl,--enable-runtime-pseudo-reloc: See str 1585
|
||||
@ -221,11 +232,12 @@ if test x$enable_shared = xyes; then
|
||||
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
|
||||
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
|
||||
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
|
||||
CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
|
||||
DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
|
||||
;;
|
||||
esac
|
||||
|
||||
LINKSHARED="-L../src -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX"
|
||||
LINKSHARED="-L../src -lfltk_cairo$SHAREDSUFFIX -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX"
|
||||
else
|
||||
DSOCOMMAND="echo"
|
||||
DSOLINK=""
|
||||
@ -233,10 +245,11 @@ else
|
||||
FLDSONAME=""
|
||||
GLDSONAME=""
|
||||
IMGDSONAME=""
|
||||
CAIRODSONAME=""
|
||||
PICFLAG=0
|
||||
SHAREDSUFFIX=""
|
||||
FLUID="fluid"
|
||||
LINKSHARED="../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a"
|
||||
LINKSHARED="../lib/libfltk_cairo.a ../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a"
|
||||
fi
|
||||
|
||||
AC_SUBST(DSOCOMMAND)
|
||||
@ -246,6 +259,7 @@ AC_SUBST(DSONAME)
|
||||
AC_SUBST(FLDSONAME)
|
||||
AC_SUBST(GLDSONAME)
|
||||
AC_SUBST(IMGDSONAME)
|
||||
AC_SUBST(CAIRODSONAME)
|
||||
AC_SUBST(SHAREDSUFFIX)
|
||||
AC_SUBST(LINKSHARED)
|
||||
AC_SUBST(FLUID)
|
||||
@ -558,15 +572,41 @@ dnl See if we need a .exe extension on executables...
|
||||
AC_EXEEXT
|
||||
|
||||
dnl Check for Cairo library unless disabled...
|
||||
AC_ARG_ENABLE(cairo,[ --enable-cairo use Cairo graphics (default=no)])
|
||||
CAIRODIR=""
|
||||
CAIROFLAGS=""
|
||||
LINKFLTKCAIRO=""
|
||||
CAIROLIBS=""
|
||||
|
||||
AC_ARG_ENABLE(cairo,[ --enable-cairoext use fltk code instrumentation for cairo extended use (default=no)])
|
||||
if test x$enable_cairoext = xyes; then
|
||||
AC_DEFINE(USE_CAIRO)
|
||||
AC_DEFINE(HAVE_CAIRO)
|
||||
dnl FIXME This part should be fixed so configure do not depend on
|
||||
dnl we do not rely on pkg-config .
|
||||
CAIRODIR="cairo"
|
||||
CAIROFLAGS="`pkg-config --cflags cairo`"
|
||||
CAIROLIBS="-lcairo -lpixman-1"
|
||||
CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
|
||||
LINKFLTKCAIRO="../lib/libfltk_cairo.a"
|
||||
LIBS="$CAIROLIBS $LINKFLTKCAIRO $LIBS"
|
||||
fi
|
||||
|
||||
dnl Check for Cairo library unless disabled...
|
||||
AC_ARG_ENABLE(cairo,[ --enable-cairo use lib Cairo (default=no)])
|
||||
if test x$enable_cairo = xyes; then
|
||||
AC_DEFINE(HAVE_CAIRO)
|
||||
dnl FIXME This part should be fixed so configure do not depend on
|
||||
dnl we do not rely on pkg-config .
|
||||
CXXFLAGS="`pkg-config --cflags cairo` $CXXFLAGS"
|
||||
CAIRODIR="cairo"
|
||||
CAIROFLAGS="`pkg-config --cflags cairo`"
|
||||
CAIROLIBS="-lcairo -lpixman-1"
|
||||
LIBS="-lcairo -lpixman-1 $LIBS"
|
||||
CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
|
||||
LINKFLTKCAIRO="../lib/libfltk_cairo.a"
|
||||
fi
|
||||
AC_SUBST(CAIRODIR)
|
||||
AC_SUBST(CAIROFLAGS)
|
||||
AC_SUBST(CAIROLIBS)
|
||||
AC_SUBST(LINKFLTKCAIRO)
|
||||
|
||||
dnl Check for pthreads for multi-threaded apps...
|
||||
have_pthread=no
|
||||
@ -1130,7 +1170,10 @@ else
|
||||
echo " ZLIB=Builtin"
|
||||
fi
|
||||
if test x$enable_cairo = xyes; then
|
||||
echo " CAIRO=System"
|
||||
echo " CAIRO=lib"
|
||||
fi
|
||||
if test x$enable_cairoext = xyes; then
|
||||
echo " CAIRO=internal_use"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -56,6 +56,7 @@ CXXFLAGS="@CXXFLAGS@ @LARGEFILE@ @PTHREAD_FLAGS@"
|
||||
LDFLAGS="@LDFLAGS@"
|
||||
LDLIBS="@LIBS@"
|
||||
OPTIM="@OPTIM@"
|
||||
CAIROFLAGS="@CAIROFLAGS@"
|
||||
|
||||
# Check for local invocation, and update paths accordingly...
|
||||
if test -f "$selfdir/FL/Fl_Window.H"; then
|
||||
@ -84,11 +85,17 @@ if test -d $includedir/FL/images; then
|
||||
CXXFLAGS="-I$includedir/FL/images $CXXFLAGS"
|
||||
fi
|
||||
|
||||
if test -f "$libdir/libfltk_cairo.a"; then
|
||||
CFLAGS="$CAIROFLAGS $CFLAGS"
|
||||
CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
|
||||
fi
|
||||
|
||||
# libraries to link with:
|
||||
LIBNAME="@LIBNAME@"
|
||||
DSONAME="@DSONAME@"
|
||||
DSOLINK="@DSOLINK@"
|
||||
IMAGELIBS="@IMAGELIBS@"
|
||||
CAIROLIBS="@CAIROLIBS@"
|
||||
SHAREDSUFFIX="@SHAREDSUFFIX@"
|
||||
|
||||
usage ()
|
||||
@ -103,6 +110,7 @@ Options telling what we are doing:
|
||||
[--use-images] use extra image formats (PNG, JPEG)
|
||||
[--use-glut] use glut compatibility layer
|
||||
[--use-forms] use forms compatibility layer
|
||||
[--use-cairo] use cairo graphics lib
|
||||
|
||||
Options telling what information we request:
|
||||
[--cc] return C compiler used to compile FLTK
|
||||
@ -170,6 +178,9 @@ do
|
||||
--use-images)
|
||||
use_images=yes
|
||||
;;
|
||||
--use-cairo)
|
||||
use_cairo=yes
|
||||
;;
|
||||
--cflags)
|
||||
echo_cflags=yes
|
||||
;;
|
||||
@ -235,6 +246,11 @@ if test x$use_images = xyes; then
|
||||
LDSTATIC="$libdir/libfltk_images.a $IMAGELIBS $LDSTATIC"
|
||||
fi
|
||||
|
||||
if test x$use_cairo = xyes; then
|
||||
LDLIBS="-lfltk_cairo$SHAREDSUFFIX $CAIROLIBS $LDLIBS"
|
||||
LDSTATIC="$libdir/libfltk_cairo.a $CAIROLIBS $LDSTATIC"
|
||||
fi
|
||||
|
||||
LDLIBS="$DSOLINK $LDFLAGS $libs $LDLIBS"
|
||||
LDSTATIC="$LDFLAGS $LDSTATIC"
|
||||
|
||||
@ -351,6 +367,10 @@ if test "$echo_libs" = "yes"; then
|
||||
echo $libdir/libfltk_gl.a
|
||||
fi
|
||||
|
||||
if test x$use_cairo = xyes; then
|
||||
echo $libdir/libfltk_cairo.a
|
||||
fi
|
||||
|
||||
if test x$use_images = xyes; then
|
||||
echo $libdir/libfltk_images.a
|
||||
|
||||
|
@ -64,6 +64,7 @@ LIBNAME = @LIBNAME@
|
||||
FLLIBNAME = @FLLIBNAME@
|
||||
GLLIBNAME = @GLLIBNAME@
|
||||
IMGLIBNAME = @IMGLIBNAME@
|
||||
CAIROLIBNAME = @CAIROLIBNAME@
|
||||
LIBCOMMAND = @LIBCOMMAND@
|
||||
LIBEXT = @LIBEXT@
|
||||
RANLIB = @RANLIB@
|
||||
@ -71,10 +72,13 @@ DSONAME = @DSONAME@
|
||||
FLDSONAME = @FLDSONAME@
|
||||
GLDSONAME = @GLDSONAME@
|
||||
IMGDSONAME = @IMGDSONAME@
|
||||
CAIRODSONAME = @IMGDSONAME@
|
||||
DSOCOMMAND = @DSOCOMMAND@
|
||||
|
||||
# libraries to link with:
|
||||
AUDIOLIBS = @AUDIOLIBS@
|
||||
CAIROLIBS = @CAIROLIBS@
|
||||
CAIROFLAGS = @CAIROFLAGS@
|
||||
DSOFLAGS = -L. @DSOFLAGS@
|
||||
LDFLAGS = $(OPTIM) @LDFLAGS@
|
||||
LDLIBS = @LIBS@
|
||||
@ -83,12 +87,13 @@ LINKFLTK = @LINKFLTK@
|
||||
LINKFLTKGL = @LINKFLTKGL@
|
||||
LINKFLTKFORMS = @LINKFLTKFORMS@ @LINKFLTK@
|
||||
LINKFLTKIMG = @LINKFLTKIMG@ @LINKFLTK@ $(IMAGELIBS)
|
||||
LINKSHARED = @DSOLINK@ @LINKSHARED@ $(IMAGELIBS)
|
||||
LINKFLTKCAIRO = @LINKFLTKCAIRO@ $(CAIROLIBS)
|
||||
LINKSHARED = @DSOLINK@ @LINKSHARED@ $(IMAGELIBS) $(CAIROLIBS)
|
||||
IMAGELIBS = -L../lib @IMAGELIBS@
|
||||
|
||||
# image libraries to build...
|
||||
IMAGEDIRS = @JPEG@ @ZLIB@ @PNG@
|
||||
|
||||
CAIRODIR = @CAIRODIR@
|
||||
# The extension to use for executables...
|
||||
EXEEXT = @EXEEXT@
|
||||
|
||||
|
@ -1184,7 +1184,7 @@ void Fl_Window::hide() {
|
||||
fl_release_dc(fl_window, fl_gc);
|
||||
fl_window = (HWND)-1;
|
||||
fl_gc = 0;
|
||||
# ifdef HAVE_CAIRO
|
||||
# ifdef USE_CAIRO
|
||||
if (Fl::cairo_autolink_context()) Fl::cairo_make_current((Fl_Window*) 0);
|
||||
# endif
|
||||
}
|
||||
|
@ -323,7 +323,7 @@ void Fl_Double_Window::flush(int eraseoverlay) {
|
||||
RestoreDC(fl_gc, save);
|
||||
DeleteDC(fl_gc);
|
||||
fl_gc = _sgc;
|
||||
//# if defined(HAVE_CAIRO)
|
||||
//# if defined(USE_CAIRO)
|
||||
//if Fl::cairo_autolink_context() Fl::cairo_make_current(this); // capture gc changes automatically to update the cairo context adequately
|
||||
//# endif
|
||||
#elif defined(__APPLE__)
|
||||
|
@ -69,8 +69,8 @@ void Fl_Menu_Window::flush() {
|
||||
fl_window = myi->xid;
|
||||
if (!gc) {
|
||||
gc = XCreateGC(fl_display, myi->xid, 0, 0);
|
||||
# if defined(HAVE_CAIRO)
|
||||
Fl::cairo_make_current(gc); // capture gc changes automatically to update the cairo context adequately
|
||||
# if defined(USE_CAIRO)
|
||||
if(Fl::autolink_context()) Fl::cairo_make_current(gc); // capture gc changes automatically to update the cairo context adequately
|
||||
# endif
|
||||
}
|
||||
fl_gc = gc;
|
||||
|
@ -135,7 +135,7 @@ void _Fl_Overlay::flush() {
|
||||
gc = XCreateGC(fl_display, fl_xid(this), 0, 0);
|
||||
}
|
||||
fl_gc = gc;
|
||||
#if defined(HAVE_CAIRO)
|
||||
#if defined(USE_CAIRO)
|
||||
if (Fl::cairo_autolink_context()) Fl::cairo_make_current(this); // capture gc changes automatically to update the cairo context adequately
|
||||
#endif
|
||||
fl_overlay = 1;
|
||||
|
@ -133,7 +133,7 @@ void Fl_Window::draw() {
|
||||
y(savey);
|
||||
x(savex);
|
||||
|
||||
# if defined(HAVE_CAIRO)
|
||||
# if defined(USE_CAIRO)
|
||||
Fl::cairo_make_current(this); // checkout if an update is necessary
|
||||
# endif
|
||||
}
|
||||
|
@ -2351,7 +2351,7 @@ void Fl_Window::make_current()
|
||||
fl_gc = i->gc;
|
||||
CGContextSaveGState(fl_gc);
|
||||
Fl_X::q_fill_context();
|
||||
#if defined(HAVE_CAIRO) && defined (__APPLE_QUARTZ__)
|
||||
#if defined(USE_CAIRO) && defined (__APPLE_QUARTZ__)
|
||||
if (Fl::cairo_autolink_context()) Fl::cairo_make_current(this); // capture gc changes automatically to update the cairo context adequately
|
||||
#endif
|
||||
|
||||
@ -2359,7 +2359,7 @@ void Fl_Window::make_current()
|
||||
fl_clip_region( 0 );
|
||||
SetPortClipRegion( GetWindowPort(i->xid), fl_window_region );
|
||||
|
||||
#if defined(__APPLE_QUARTZ__) && defined(HAVE_CAIRO)
|
||||
#if defined(__APPLE_QUARTZ__) && defined(USE_CAIRO)
|
||||
// update the cairo_t context
|
||||
if (Fl::cairo_autolink_context()) Fl::cairo_make_current(this);
|
||||
#endif
|
||||
@ -2410,8 +2410,8 @@ void Fl_X::q_release_context(Fl_X *x) {
|
||||
fprintf(stderr, "Error %d in QDEndCGContext\n", (int)err);
|
||||
}
|
||||
fl_gc = 0;
|
||||
#if defined(HAVE_CAIRO) && defined (__APPLE_QUARTZ__)
|
||||
Fl::cairo_make_current((Fl_Window*) 0); // capture gc changes automatically to update the cairo context adequately
|
||||
#if defined(USE_CAIRO) && defined (__APPLE_QUARTZ__)
|
||||
if (Fl::cairo_autolink_context()) Fl::cairo_make_current((Fl_Window*) 0); // capture gc changes automatically to update the cairo context adequately
|
||||
#endif
|
||||
}
|
||||
|
||||
|
10
src/Makefile
10
src/Makefile
@ -34,7 +34,6 @@ 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 \
|
||||
@ -188,6 +187,7 @@ IMGCPPFILES = \
|
||||
Fl_PNG_Image.cxx \
|
||||
Fl_PNM_Image.cxx
|
||||
|
||||
|
||||
CFILES = fl_call_main.c flstring.c scandir.c numericsort.c vsnprintf.c fl_utf.c
|
||||
|
||||
UTF8CFILES = \
|
||||
@ -211,7 +211,7 @@ IMGOBJECTS = $(IMGCPPFILES:.cxx=.o)
|
||||
all: $(LIBNAME) $(DSONAME) \
|
||||
$(FLLIBNAME) $(FLDSONAME) \
|
||||
$(GLLIBNAME) $(GLDSONAME) \
|
||||
$(IMGLIBNAME) $(IMGDSONAME)
|
||||
$(IMGLIBNAME) $(IMGDSONAME)
|
||||
|
||||
$(LIBNAME): $(OBJECTS)
|
||||
echo $(LIBCOMMAND) $@ ...
|
||||
@ -418,7 +418,7 @@ mgwfltknox_images-1.3.dll: $(IMGLIBNAME) mgwfltknox-1.3.dll
|
||||
$(IMAGELIBS) $(LDLIBS)
|
||||
|
||||
clean:
|
||||
-$(RM) *.o *.dll.a core.* *~ *.bck *.bck
|
||||
-$(RM) *.o *.dll.a core.* *~ *.bak *.bck
|
||||
-$(RM) $(DSONAME) $(FLDSONAME) $(GLDSONAME) $(IMGDSONAME) \
|
||||
$(LIBNAME) $(FLLIBNAME) $(GLLIBNAME) \
|
||||
$(IMGLIBNAME) \
|
||||
@ -500,7 +500,7 @@ gl_start.o: ../FL/mac.H ../FL/win32.H
|
||||
install: $(LIBNAME) $(DSONAME) \
|
||||
$(FLLIBNAME) $(FLDSONAME) \
|
||||
$(GLLIBNAME) $(GLDSONAME) \
|
||||
$(IMGLIBNAME) $(IMGDSONAME)
|
||||
$(IMGLIBNAME) $(IMGDSONAME)
|
||||
echo "Installing libraries in $(DESTDIR)$(libdir)..."
|
||||
-$(INSTALL_DIR) $(DESTDIR)$(libdir)
|
||||
-$(INSTALL_DIR) $(DESTDIR)$(bindir)
|
||||
@ -640,6 +640,7 @@ install: $(LIBNAME) $(DSONAME) \
|
||||
$(INSTALL_LIB) libfltk_images.dll.a $(DESTDIR)$(libdir); \
|
||||
fi
|
||||
|
||||
|
||||
uninstall:
|
||||
echo "Uninstalling libraries..."
|
||||
$(RM) $(DESTDIR)$(libdir)/$(LIBNAME)
|
||||
@ -731,7 +732,6 @@ uninstall:
|
||||
$(RM) $(DESTDIR)$(libdir)/libfltk_images.dll.a;\
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# End of "$Id$".
|
||||
#
|
||||
|
@ -155,6 +155,7 @@ ALL = \
|
||||
tile$(EXEEXT) \
|
||||
tiled_image$(EXEEXT) \
|
||||
valuators$(EXEEXT) \
|
||||
cairotest$(EXEEXT) \
|
||||
utf8$(EXEEXT)
|
||||
|
||||
|
||||
@ -464,6 +465,8 @@ shape$(EXEEXT): shape.o
|
||||
$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o $@ shape.o $(LINKFLTKGL) $(LINKFLTK) $(GLDLIBS)
|
||||
|
||||
cairo_test$(EXEEXT): cairo_test.o
|
||||
echo Linking $@...
|
||||
$(CXX) $(ARCHFLAGS) $(CAIROFLAGS) $(LDFLAGS) -o $@ cairo_test.o $(LINKFLTK) $(LINKFLTKCAIRO) $(GLDLIBS)
|
||||
|
||||
#
|
||||
# End of "$Id$".
|
||||
|
@ -158,7 +158,7 @@ int main(int argc, char** argv) {
|
||||
#include <FL/fl_ask.H>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
fl_message("please configure fltk with CAIRO enabled (--enable-cairo)");
|
||||
fl_message("please configure fltk with CAIRO enabled (--enable-cairo or --enable-cairoext)");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
@ -258,7 +258,7 @@
|
||||
FavorSizeOrSpeed="0"
|
||||
AdditionalIncludeDirectories="..\vc2005;..\zlib;..\png;..\jpeg;.."
|
||||
PreprocessorDefinitions="HAVE_CAIRO=1, _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;WIN32_LEAN_AND_MEAN;VC_EXTRA_LEAN;WIN32_EXTRA_LEAN"
|
||||
RuntimeLibrary= "2"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderFile=".\Release/fltk.lib.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
@ -1772,7 +1772,7 @@
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\Fl_Cairo.cxx"
|
||||
RelativePath="..\cairo\Fl_Cairo.cxx"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
|
@ -1367,8 +1367,44 @@
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\Fl_Cairo.cxx"
|
||||
RelativePath="..\cairo\Fl_Cairo.cxx"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug Cairo|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release Cairo|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ObjectFile="$(IntDir)\$(InputName)1.obj"
|
||||
XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\Fl_Chart.cxx"
|
||||
|
Loading…
Reference in New Issue
Block a user