Files
fltk/fl_config.h.in
Albrecht Schlosser 53491f2ca0 Remove hardcoded version numbers: part 1
The goal is to change the version number for a new release only in
CMakeLists.txt. This is the first step.

Details:

- CMake/gen_config.cmake: this new file is included to generate the
  header files config.h (private, root directory), and FL/fl_config.h
  (public, can be installed). This file implements also ABI version
  checks (removed from FL/Enumerations.H and with more checks).
  Warnings are issued if the chosen ABI version is invalid.
- CMake/export.cmake: code to generate 'config.h' was moved to
  CMake/gen_config.cmake.
- CMake/options.cmake: set default of FLTK_BUILD_FORMS=OFF + comments
- CMakeLists.txt: move generation of FL/fl_config.h to gen_config.cmake,
  add API and ABI versions to CMake summary,
- FL/Enumerations.H: remove most of the version number details which
  are now included in FL/fl_config.h. This needed also some doxygen
  related changes.
- README.CMake.txt: improve docs of FL_ABI_VERSION and some more.
  Reflect the new default of CMake option FLTK_BUILD_FORMS (OFF).
- documentation/Doxyfile.in: add FL/fl_config.h to file list. This
  file is created in the build tree (and may be "installed").
- fl_config.h.in: add version number details that have been moved here
  from Enumerations.H (used to generate FL/fl_config.h).
2025-05-06 19:25:53 +02:00

163 lines
3.6 KiB
C

/* FL/fl_config.h. Generated from fl_config.h.in by CMake. */
/*
* Build configuration file for the Fast Light Tool Kit (FLTK). This
* configuration file is publicly accessible by user programs (installed).
*
* Copyright 1998-2025 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
*/
#ifndef _FL_fl_config_h_
#define _FL_fl_config_h_
/** \defgroup version_numbers Version Numbers
FLTK defines some constants to help the programmer to
find out, for which FLTK version a program is compiled.
The following constants are defined:
@{
*/
/**
The major release version of this FLTK library.
\see FL_VERSION
*/
#define FL_MAJOR_VERSION @FLTK_VERSION_MAJOR@
/**
The minor release version for this library.
FLTK remains mostly source-code compatible between minor version changes.
*/
#define FL_MINOR_VERSION @FLTK_VERSION_MINOR@
/**
The patch version for this library.
FLTK remains binary compatible between patch versions.
*/
#define FL_PATCH_VERSION @FLTK_VERSION_PATCH@
/**
The FLTK ABI (Application Binary Interface) version number as an \em int.
FL_ABI_VERSION is an \em int that describes the major, minor, and patch
ABI version numbers in the same format as FL_API_VERSION.
The ABI version number \p FL_ABI_VERSION is usually the same as the
API version \p FL_API_VERSION with the last two digits set to '00'.
FLTK retains the ABI (Application Binary Interface) during patch
releases of the same major and minor versions. Examples:
\verbatim
FLTK Version FL_API_VERSION FL_ABI_VERSION FL_VERSION (deprecated)
1.3.0 10300 10300 1.0300
1.3.4 10304 10300 1.0304
\endverbatim
Version 1.2.3 is actually stored as 10203 to allow for more than 9 minor
and patch releases.
The FL_MAJOR_VERSION, FL_MINOR_VERSION, and FL_PATCH_VERSION constants
give the integral values for the major, minor, and patch releases
respectively.
To enable new ABI-breaking features in patch releases you can configure
FLTK to use a higher FL_ABI_VERSION. The highest allowed version is
FL_ABI_VERSION = FL_API_VERSION + 1
to allow for "next version" ABI features when FLTK is built from git or
from a snapshot (pre-release version).
\see README.abi-version.txt
*/
#define FL_ABI_VERSION @FL_ABI_VERSION@
/** @} */
// End of doxygen group 'version_numbers'. More is added to the group in
// in file FL/Enumerations.H
/*
* FLTK_HAVE_CAIRO
*
* Do we have Fl_Cairo_Window support?
*/
#cmakedefine FLTK_HAVE_CAIRO 1
/*
* FLTK_HAVE_CAIROEXT
*
* Do we have the Cairo library available and want extended Cairo use in FLTK ?
* This implies to link cairo.lib in all FLTK based apps.
*/
#cmakedefine FLTK_HAVE_CAIROEXT 1
/*
* FLTK_HAVE_FORMS
*
* Do we have the Forms compatibility library available?
*/
#cmakedefine FLTK_HAVE_FORMS 1
/*
* FLTK_USE_X11
*
* Do we use X11 for the current platform?
*
*/
#cmakedefine FLTK_USE_X11 1
/*
* FLTK_USE_CAIRO
*
* Do we use Cairo to draw to the display?
*
*/
#cmakedefine FLTK_USE_CAIRO 1
/*
* FLTK_USE_WAYLAND
*
* Do we use Wayland for the current platform?
*
*/
#cmakedefine FLTK_USE_WAYLAND 1
/*
* FLTK_USE_SVG
*
* Do we want FLTK to read and write SVG-formatted files ?
*
*/
#cmakedefine01 FLTK_USE_SVG
#endif /* _FL_fl_config_h_ */