New CMake option OPTION_PRINT_SUPPORT turned ON by default

When the option is off, file config.h defines NO_PRINT_SUPPORT 
which in turn produces a library without print support, that is, 
class Fl_Printer does nothing.
When off, the FLTK library is somewhat smaller.
Can be turned off only when the X11 library is used.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11127 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2016-02-05 16:34:42 +00:00
parent 254cb01f54
commit a8a777ff26
5 changed files with 44 additions and 9 deletions

View File

@ -78,6 +78,7 @@ option(OPTION_BUILD_SHARED_LIBS
#######################################################################
option(OPTION_BUILD_EXAMPLES "build example programs" ON)
option(OPTION_PRINT_SUPPORT "allow print support" ON)
#######################################################################
if(DOXYGEN_FOUND)
@ -354,6 +355,13 @@ else()
set(FLTK_XDBE_FOUND FALSE)
endif(OPTION_USE_XDBE AND HAVE_XDBE_H)
#######################################################################
set(NO_PRINT_SUPPORT FALSE)
if(X11_FOUND AND NOT OPTION_PRINT_SUPPORT)
set(NO_PRINT_SUPPORT TRUE)
endif(X11_FOUND AND NOT OPTION_PRINT_SUPPORT)
#######################################################################
#######################################################################
# prior to CMake 3.0 this feature was buggy
if(NOT CMAKE_VERSION VERSION_LESS 3.0.0)

View File

@ -3,7 +3,7 @@
//
// Printing support for the Fast Light Tool Kit (FLTK).
//
// Copyright 2010-2014 by Bill Spitzak and others.
// Copyright 2010-2016 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
@ -23,6 +23,7 @@
#ifndef Fl_Printer_H
#define Fl_Printer_H
#include "config.h"
#include <FL/x.H>
#include <FL/Fl_Paged_Device.H>
#include <FL/fl_draw.H>
@ -191,6 +192,7 @@ public:
const char *class_name() {return class_id;};
/** \brief The constructor */
Fl_Printer(void);
#ifndef NO_PRINT_SUPPORT
int start_job(int pagecount, int *frompage = NULL, int *topage = NULL);
int start_page(void);
int printable_rect(int *w, int *h);
@ -207,8 +209,6 @@ public:
void print_window_part(Fl_Window *win, int x, int y, int w, int h, int delta_x=0, int delta_y=0);
void set_current(void);
Fl_Graphics_Driver* driver(void);
/** \brief The destructor */
~Fl_Printer(void);
/** \name These attributes are effective under the Xlib platform only.
\{
@ -233,6 +233,9 @@ public:
static const char *property_save;
static const char *property_cancel;
/** \} */
/** \brief The destructor */
~Fl_Printer(void);
private:
#if defined(WIN32) || defined(__APPLE__)
Fl_System_Printer *printer;
@ -242,6 +245,7 @@ private:
#else
Fl_PostScript_Printer *printer;
#endif
#endif // NO_PRINT_SUPPORT
};
#endif // Fl_Printer_H

View File

@ -336,6 +336,12 @@
#cmakedefine01 HAVE_DLFCN_H
#cmakedefine01 HAVE_DLSYM
/*
* Do we want print support?
*/
#cmakedefine NO_PRINT_SUPPORT 1
/*
* End of "$Id$".
*/

View File

@ -46,9 +46,8 @@ set(CPPFILES
Fl_Paged_Device.cxx
Fl_Pixmap.cxx
Fl_Positioner.cxx
Fl_PostScript.cxx
Fl_Printer.cxx
Fl_Preferences.cxx
Fl_Printer.cxx
Fl_Progress.cxx
Fl_Repeat_Button.cxx
Fl_Return_Button.cxx
@ -137,13 +136,22 @@ set(CPPFILES
fl_show_colormap.cxx
fl_symbols.cxx
fl_vertex.cxx
ps_image.cxx
screen_xywh.cxx
fl_utf8.cxx
fl_encoding_latin1.cxx
fl_encoding_mac_roman.cxx
)
if (USE_X11 AND NOT OPTION_PRINT_SUPPORT)
set(PSFILES
)
else()
set(PSFILES
Fl_PostScript.cxx
ps_image.cxx
)
endif(USE_X11 AND NOT OPTION_PRINT_SUPPORT)
set(DRIVER_FILES)
if (USE_X11)
@ -280,7 +288,7 @@ else()
endif(APPLE AND NOT OPTION_APPLE_X11)
#######################################################################
FL_ADD_LIBRARY(fltk STATIC "${CPPFILES};${MMFILES};${CFILES};fl_call_main.c")
FL_ADD_LIBRARY(fltk STATIC "${CPPFILES};${PSFILES};${MMFILES};${CFILES};fl_call_main.c")
if(LIB_dl)
target_link_libraries(fltk ${LIB_dl})

View File

@ -4,7 +4,7 @@
// Encompasses platform-specific printing-support code and
// PostScript output code for the Fast Light Tool Kit (FLTK).
//
// Copyright 2010 by Bill Spitzak and others.
// Copyright 2010-2016 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
@ -19,6 +19,15 @@
#include <FL/Fl_Printer.H>
const char *Fl_Printer::class_id = "Fl_Printer";
#ifdef NO_PRINT_SUPPORT
Fl_Printer::Fl_Printer(void) {
}
#else
#if defined(WIN32) || defined(__APPLE__)
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: implement the printer device specifics"
@ -69,7 +78,6 @@ const char *Fl_Printer::property_save = "Save";
/** [this text may be customized at run-time] */
const char *Fl_Printer::property_cancel = "Cancel";
const char *Fl_Printer::class_id = "Fl_Printer";
#if defined(__APPLE__) || defined(WIN32) || defined(FL_DOXYGEN)
const char *Fl_System_Printer::class_id = Fl_Printer::class_id;
#endif
@ -207,6 +215,7 @@ Fl_Printer::~Fl_Printer(void)
delete printer;
}
#endif // NO_PRINT_SUPPORT
//
// End of "$Id$".