summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2016-02-05 16:34:42 +0000
committerManolo Gouy <Manolo>2016-02-05 16:34:42 +0000
commita8a777ff26dede82ff1b450806608851f63cb79f (patch)
tree20cb34a900305355f953d10a00e0de68169eb6f8
parent254cb01f542b554b63c143718215b23f8151080c (diff)
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
-rw-r--r--CMake/options.cmake8
-rw-r--r--FL/Fl_Printer.H10
-rw-r--r--configh.cmake.in6
-rw-r--r--src/CMakeLists.txt16
-rw-r--r--src/Fl_Printer.cxx13
5 files changed, 44 insertions, 9 deletions
diff --git a/CMake/options.cmake b/CMake/options.cmake
index 2725d6c79..0ae0195b8 100644
--- a/CMake/options.cmake
+++ b/CMake/options.cmake
@@ -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)
@@ -355,6 +356,13 @@ else()
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)
option(CMAKE_SUPPRESS_REGENERATION
diff --git a/FL/Fl_Printer.H b/FL/Fl_Printer.H
index d133ea7f5..51a947389 100644
--- a/FL/Fl_Printer.H
+++ b/FL/Fl_Printer.H
@@ -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
diff --git a/configh.cmake.in b/configh.cmake.in
index b0f0cf1c2..5c5902898 100644
--- a/configh.cmake.in
+++ b/configh.cmake.in
@@ -337,5 +337,11 @@
#cmakedefine01 HAVE_DLSYM
/*
+ * Do we want print support?
+ */
+
+#cmakedefine NO_PRINT_SUPPORT 1
+
+/*
* End of "$Id$".
*/
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b28fff13b..4225b5377 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -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})
diff --git a/src/Fl_Printer.cxx b/src/Fl_Printer.cxx
index aece33443..a19b7cb7b 100644
--- a/src/Fl_Printer.cxx
+++ b/src/Fl_Printer.cxx
@@ -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$".