Update build system to compile all drivers as indiviual objects.

Removed obsolete files that served only one purpose: to #include
different driver files. Updated CMake and Makefiles to reflect the
changes. Build tested with:
 - MinGW + configure/make
 - MinGW + CMake/make
 - Visual Studio 2010 generated by CMake


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11092 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Albrecht Schlosser 2016-01-31 00:39:57 +00:00
parent 6cc67c18f2
commit 5c32d3b24c
17 changed files with 89 additions and 233 deletions

View File

@ -105,7 +105,6 @@ set(CPPFILES
filename_match.cxx
filename_setext.cxx
fl_arc.cxx
fl_arci.cxx
fl_ask.cxx
fl_boxtype.cxx
fl_color.cxx
@ -114,7 +113,6 @@ set(CPPFILES
fl_diamond_box.cxx
fl_dnd.cxx
fl_draw.cxx
fl_draw_image.cxx
fl_draw_pixmap.cxx
fl_engraved_label.cxx
fl_file_dir.cxx
@ -133,7 +131,6 @@ set(CPPFILES
fl_round_box.cxx
fl_rounded_box.cxx
fl_set_font.cxx
fl_set_fonts.cxx
fl_scroll_area.cxx
fl_shadow_box.cxx
fl_shortcut.cxx
@ -153,7 +150,6 @@ if (USE_X11)
# X11 (including APPLE with X11)
# FILE(GLOB DRIVER_FILES drivers/Xlib/Fl_Xlib_Graphics_Driver_*.cxx)
set(DRIVER_FILES
drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx
drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx
@ -176,7 +172,6 @@ elseif (APPLE)
# Apple Quartz
# FILE(GLOB DRIVER_FILES drivers/Quartz/Fl_Quartz_Graphics_Driver_*.cxx)
set(DRIVER_FILES
drivers/Quartz/Fl_Quartz_Display_Device.cxx
drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx
@ -193,7 +188,16 @@ elseif (APPLE)
else ()
# Windows (GDI)
# not yet "converted"
set(DRIVER_FILES
drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx
)
endif (USE_X11)

View File

@ -124,7 +124,6 @@ CPPFILES = \
filename_match.cxx \
filename_setext.cxx \
fl_arc.cxx \
fl_arci.cxx \
fl_ask.cxx \
fl_boxtype.cxx \
fl_color.cxx \
@ -133,7 +132,6 @@ CPPFILES = \
fl_diamond_box.cxx \
fl_dnd.cxx \
fl_draw.cxx \
fl_draw_image.cxx \
fl_draw_pixmap.cxx \
fl_encoding_latin1.cxx \
fl_encoding_mac_roman.cxx \
@ -154,7 +152,6 @@ CPPFILES = \
fl_round_box.cxx \
fl_rounded_box.cxx \
fl_set_font.cxx \
fl_set_fonts.cxx \
fl_scroll_area.cxx \
fl_shadow_box.cxx \
fl_shortcut.cxx \
@ -191,7 +188,16 @@ GLCPPFILES = \
gl_draw.cxx \
gl_start.cxx \
glut_compatability.cxx \
glut_font.cxx
glut_font.cxx \
drivers/OpenGL/Fl_OpenGL_Display_Device.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_arci.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_color.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_font.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_image.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_line_style.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_rect.cxx \
drivers/OpenGL/Fl_OpenGL_Graphics_Driver_vertex.cxx
IMGCPPFILES = \
fl_images_core.cxx \
@ -260,7 +266,7 @@ CPPFILES += $(shell if test $(BUILD_X11) = Yes; then echo $(XLIBCPPFILES); fi)
CPPFILES += $(shell if test $(BUILD_X11) = Yes -a $(BUILD_XFT) = Yes; then echo $(XLIBXFTFILES); fi)
CPPFILES += $(shell if test $(BUILD_X11) = Yes -a $(BUILD_XFT) != Yes; then echo $(XLIBFONTFILES); fi)
# CPPFILES += $(shell if test $(BUILD_GDI) = Yes; then echo $(GDICPPFILES); fi)
CPPFILES += $(shell if test $(BUILD_GDI) = Yes; then echo $(GDICPPFILES); fi)
OBJECTS = $(MMFILES:.mm=.o) $(CPPFILES:.cxx=.o) $(CFILES:.c=.o) $(UTF8CFILES:.c=.o)

View File

@ -24,6 +24,12 @@
\brief Utility functions for drawing circles using integers
*/
// "integer" circle drawing functions. These draw the limited
// circle types provided by X and NT graphics. The advantage of
// these is that small ones draw quite nicely (probably due to stored
// hand-drawn bitmaps of small circles!) and may be implemented by
// hardware and thus are fast.
#include "Fl_GDI_Graphics_Driver.h"
#include <FL/math.h>

View File

@ -33,9 +33,8 @@
// to co-exist, creating conflicts with multipe mapping.
// FIXME: maybe we can forget about color mapping and assume RGB?
//static unsigned fl_cmap[256] = {
//#include "../../fl_cmap.h" // this is a file produced by "cmap.cxx":
//};
// FIXME: ... but for now we still have it ...
extern unsigned fl_cmap[256]; // defined in fl_color.cxx
// Translations to win32 data structures:
Fl_XMap fl_xmap[256];

View File

@ -3,7 +3,7 @@
//
// WIN32 font utilities for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 by Bill Spitzak and others.
// Copyright 1998-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
@ -16,6 +16,35 @@
// http://www.fltk.org/str.php
//
#ifdef WIN32
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
# endif
/* We require Windows 2000 features such as GetGlyphIndices */
# if !defined(WINVER) || (WINVER < 0x0500)
# ifdef WINVER
# undef WINVER
# endif
# define WINVER 0x0500
# endif
# if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
# ifdef _WIN32_WINNT
# undef _WIN32_WINNT
# endif
# define _WIN32_WINNT 0x0500
# endif
#endif
// Select fonts from the FLTK font table.
#include "../../flstring.h"
#include <FL/Fl.H>
#include <FL/fl_draw.H>
#include <FL/x.H>
#include "../../Fl_Font.H"
#include <stdio.h>
#include <stdlib.h>
// This function fills in the FLTK font table with all the fonts that
// are found on the X server. It tries to place the fonts into families
// and to sort them so the first 4 in a family are normal, bold, italic,
@ -167,7 +196,7 @@ Fl::get_font_sizes(Fl_Font fnum, int*& sizep) {
//
// WIN32 font selection routines for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2012 by Bill Spitzak and others.
// Copyright 1998-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

View File

@ -3,7 +3,7 @@
//
// WIN32 image drawing code for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2012 by Bill Spitzak and others.
// Copyright 1998-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

View File

@ -19,6 +19,14 @@
#ifndef FL_CFG_GFX_GDI_LINE_STYLE_CXX
#define FL_CFG_GFX_GDI_LINE_STYLE_CXX
#include "../../config_lib.h"
#include <FL/Fl.H>
#include <FL/fl_draw.H>
#include <FL/x.H>
#include <FL/Fl_Printer.H>
#include "../../flstring.h"
#include <stdio.h>
/**
\file gdi_line_style.cxx
\brief Line style drawing utility hiding different platforms.
@ -26,6 +34,8 @@
#include "Fl_GDI_Graphics_Driver.h"
extern int fl_line_width_; // defined in src/fl_line_style.cxx
void Fl_GDI_Graphics_Driver::line_style(int style, int width, char* dashes) {

View File

@ -17,12 +17,19 @@
//
/**
\file gdi_rect.cxx
\brief MSWindows GDI specific line and polygon drawing with integer coordinates.
*/
#include <config.h>
#include "../../config_lib.h"
#include <FL/Fl.H>
#include <FL/Fl_Widget.H>
#include <FL/Fl_Printer.H>
#include <FL/fl_draw.H>
#include <FL/x.H>
#include "Fl_GDI_Graphics_Driver.h"

View File

@ -3,7 +3,7 @@
//
// Arc functions for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 by Bill Spitzak and others.
// Copyright 1998-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

View File

@ -1,74 +0,0 @@
//
// "$Id$"
//
// Arc (integer) drawing functions for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 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:
//
// http://www.fltk.org/COPYING.php
//
// Please report all bugs and problems on the following page:
//
// http://www.fltk.org/str.php
//
/**
\file fl_arci.cxx
\brief Utility functions for drawing circles using integers
*/
// "integer" circle drawing functions. These draw the limited
// circle types provided by X and NT graphics. The advantage of
// these is that small ones draw quite nicely (probably due to stored
// hand-drawn bitmaps of small circles!) and may be implemented by
// hardware and thus are fast.
// Probably should add fl_chord.
// 3/10/98: created
#include <FL/fl_draw.H>
#include <config.h>
#include "config_lib.h"
// Remove #ifndef FL_LIBRARY_CMAKE and the entire block of #include
// statements when the new build system is ready:
#ifndef FL_LIBRARY_CMAKE
// -----------------------------------------------------------------------------
// Apple Quartz driver in "drivers/Quartz/Fl_Quartz_Graphics_Driver_arci.cxx"
// -----------------------------------------------------------------------------
#ifdef FL_CFG_GFX_GDI
# include "drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx"
#endif
// -----------------------------------------------------------------------------
#ifdef FL_CFG_GFX_XLIB
// # include "drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx"
#endif
// -----------------------------------------------------------------------------
#endif // FL_LIBRARY_CMAKE
// -----------------------------------------------------------------------------
//
// End of "$Id$".
//

View File

@ -3,7 +3,7 @@
//
// Color functions for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 by Bill Spitzak and others.
// Copyright 1998-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
@ -50,7 +50,7 @@ unsigned fl_cmap[256] = {
#ifdef FL_CFG_GFX_GDI
# include "drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx"
// # include "drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx"
#endif

View File

@ -1,52 +0,0 @@
//
// "$Id$"
//
// Image drawing routines for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 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:
//
// http://www.fltk.org/COPYING.php
//
// Please report all bugs and problems on the following page:
//
// http://www.fltk.org/str.php
//
// I hope a simple and portable method of drawing color and monochrome
// images. To keep this simple, only a single storage type is
// supported: 8 bit unsigned data, byte order RGB, and pixels are
// stored packed into rows with the origin at the top-left. It is
// possible to alter the size of pixels with the "delta" argument, to
// add alpha or other information per pixel. It is also possible to
// change the origin and direction of the image data by messing with
// the "delta" and "linedelta", making them negative, though this may
// defeat some of the shortcuts in translating the image for X.
// FIXME: use the correct macros for these conditions
// FIXME: eventually get rid of this file and use the source files as modules.
// -----------------------------------------------------------------------------
// Remove #ifndef FL_LIBRARY_CMAKE and the entire block of #include
// statements when the new build system is ready:
#ifndef FL_LIBRARY_CMAKE
// -----------------------------------------------------------------------------
#ifdef WIN32
# include "drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx"
#elif defined(__APPLE__)
// Apple Quartz driver in "drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx"
#else
// # include "drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx"
#endif
// -----------------------------------------------------------------------------
#endif // FL_LIBRARY_CMAKE
// -----------------------------------------------------------------------------
//
// End of "$Id$".
//

View File

@ -3,7 +3,7 @@
//
// Font selection code for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 by Bill Spitzak and others.
// Copyright 1998-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
@ -16,24 +16,6 @@
// http://www.fltk.org/str.php
//
#ifdef WIN32
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
# endif
/* We require Windows 2000 features such as GetGlyphIndices */
# if !defined(WINVER) || (WINVER < 0x0500)
# ifdef WINVER
# undef WINVER
# endif
# define WINVER 0x0500
# endif
# if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
# ifdef _WIN32_WINNT
# undef _WIN32_WINNT
# endif
# define _WIN32_WINNT 0x0500
# endif
#endif
// Select fonts from the FLTK font table.
#include "flstring.h"
@ -46,30 +28,12 @@
#include <stdlib.h>
// -----------------------------------------------------------------------------
// Remove #ifndef FL_LIBRARY_CMAKE and the entire block of #include
// statements when the new build system is ready:
#ifndef FL_LIBRARY_CMAKE
#ifdef WIN32
# include "drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx"
#elif defined(__APPLE__)
// Apple Quartz driver in "drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx"
#elif USE_XFT
# include "drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx"
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: implement font handling specifics in its own file"
#else
// # include "drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx"
#endif // WIN32
#endif // FL_LIBRARY_CMAKE
// all driver code is now in drivers/XXX/Fl_XXX_Graphics_Driver_xyz.cxx
// -----------------------------------------------------------------------------
#if defined(WIN32) || defined(__APPLE__)
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: do you need the XFontStruct"
# pragma message "FL_PORTING: do you need the XFontStruct ?"
#else
XFontStruct *fl_X_core_font()
{

View File

@ -48,7 +48,7 @@ int fl_line_width_ = 0;
#ifdef FL_CFG_GFX_GDI
# include "drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx"
// # include "drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx"
#endif

View File

@ -3,7 +3,7 @@
//
// Rectangle drawing routines for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2012 by Bill Spitzak and others.
// Copyright 1998-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
@ -78,7 +78,7 @@ Fl_Region Fl_Graphics_Driver::clip_region() {
#ifdef FL_CFG_GFX_GDI
# include "drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx"
// # include "drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx"
#endif

View File

@ -1,43 +0,0 @@
//
// "$Id$"
//
// More font utilities for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2010 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:
//
// http://www.fltk.org/COPYING.php
//
// Please report all bugs and problems on the following page:
//
// http://www.fltk.org/str.php
//
#include <FL/Fl.H>
#include <FL/x.H>
#include "Fl_Font.H"
#include "flstring.h"
#include <stdlib.h>
#ifdef WIN32
//# include "fl_set_fonts_win32.cxx"
// now included for fl_font.cxx, but will be its own source code module in drivers/Xlib/Fl_Xlib_Graphics_Driver_font..."
#elif defined(__APPLE__)
# include "fl_set_fonts_mac.cxx"
// now included for fl_font.cxx, but will be its own source code module in drivers/Xlib/Fl_Xlib_Graphics_Driver_font..."
#elif USE_XFT
//# include "fl_set_fonts_xft.cxx"
// now included for fl_font.cxx, but will be its own source code module in drivers/Xlib/Fl_Xlib_Graphics_Driver_font..."
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: implement changes in font in its own file"
#else
//# include "fl_set_fonts_x.cxx"
// now included for fl_font.cxx, but will be its own source code module in drivers/Xlib/Fl_Xlib_Graphics_Driver_font..."
#endif // WIN32
//
// End of "$Id$".
//

View File

@ -160,7 +160,7 @@ void Fl_Graphics_Driver::fixloop() { // remove equal points from closed path
#ifdef FL_CFG_GFX_GDI
# include "drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx"
// # include "drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx"
#endif