Make FL_ABI_VERSION configurable (STR #3161).
This commit adds the configure option --with-abiversion and the CMake option OPTION_ABI_VERSION. Both options can be set e.g. to 10304 to build with FL_ABI_VERSION = 10304 (FLTK 1.3.4). For IDE builds there are new files ide/<IDE-NAME>/FL/abi-version.h that can be edited to change the ABI version before the FLTK lib is built. Note that this file MUST be copied to the include/FL directory if the IDE-built library is to be installed. The default is FL_ABI_VERSION = FL_MAJOR*10000 + FL_MINOR*100 + 0, i.e. 10300 for all FLTK 1.3.x versions to keep binary compatibility (ABI). Todo: more tests and more documentation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10786 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
e5d7f8367e
commit
9adb181156
3
.gitignore
vendored
3
.gitignore
vendored
@ -21,7 +21,8 @@
|
|||||||
/*.bck
|
/*.bck
|
||||||
/TAGS
|
/TAGS
|
||||||
|
|
||||||
# /FL/
|
# /FL
|
||||||
|
/FL/abi-version.h
|
||||||
/FL/Makefile
|
/FL/Makefile
|
||||||
/FL/*.bck
|
/FL/*.bck
|
||||||
|
|
||||||
|
3
CHANGES
3
CHANGES
@ -2,6 +2,9 @@ CHANGES IN FLTK 1.3.4 RELEASED: ??? ?? ????
|
|||||||
|
|
||||||
New features and extensions
|
New features and extensions
|
||||||
|
|
||||||
|
- FLTK's ABI version can now be configured with configure or CMake.
|
||||||
|
*FIXME* See further documentation in ... [TBD].
|
||||||
|
|
||||||
- Added full support of true subwindows to the Mac OS X platform.
|
- Added full support of true subwindows to the Mac OS X platform.
|
||||||
Window nesting to any depth is possible. An Fl_Gl_Window window or
|
Window nesting to any depth is possible. An Fl_Gl_Window window or
|
||||||
subwindow can contain Fl_Window's as subwindows.
|
subwindow can contain Fl_Window's as subwindows.
|
||||||
|
@ -36,6 +36,10 @@ install(DIRECTORY ${FLTK_SOURCE_DIR}/FL
|
|||||||
PATTERN ".svn" EXCLUDE
|
PATTERN ".svn" EXCLUDE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
install(DIRECTORY ${FLTK_BINARY_DIR}/FL
|
||||||
|
DESTINATION ${FLTK_INCLUDEDIR} USE_SOURCE_PERMISSIONS
|
||||||
|
)
|
||||||
|
|
||||||
if(OPTION_CREATE_LINKS)
|
if(OPTION_CREATE_LINKS)
|
||||||
install(SCRIPT ${FLTK_BINARY_DIR}/install-symlinks.cmake)
|
install(SCRIPT ${FLTK_BINARY_DIR}/install-symlinks.cmake)
|
||||||
endif(OPTION_CREATE_LINKS)
|
endif(OPTION_CREATE_LINKS)
|
||||||
|
@ -33,6 +33,13 @@ set(OPTION_ARCHFLAGS ""
|
|||||||
)
|
)
|
||||||
add_definitions(${OPTION_ARCHFLAGS})
|
add_definitions(${OPTION_ARCHFLAGS})
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
set(OPTION_ABI_VERSION ""
|
||||||
|
CACHE STRING
|
||||||
|
"FLTK ABI Version (FL_ABI_VERSION - define as 10x0y for 1.x.y)"
|
||||||
|
)
|
||||||
|
set(FL_ABI_VERSION ${OPTION_ABI_VERSION})
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
#######################################################################
|
#######################################################################
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
|
@ -57,6 +57,12 @@ include(CMake/variables.cmake)
|
|||||||
#######################################################################
|
#######################################################################
|
||||||
include(CMake/export.cmake)
|
include(CMake/export.cmake)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${FLTK_SOURCE_DIR}/abi-version.cmake.in
|
||||||
|
${FLTK_BINARY_DIR}/FL/abi-version.h
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# build examples - these have to be built after fluid is built/imported
|
# build examples - these have to be built after fluid is built/imported
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
@ -23,23 +23,28 @@
|
|||||||
#ifndef Fl_Enumerations_H
|
#ifndef Fl_Enumerations_H
|
||||||
#define Fl_Enumerations_H
|
#define Fl_Enumerations_H
|
||||||
|
|
||||||
/* Uncomment the following FL_ABI_VERSION line to enable ABI breaking fixes
|
/*
|
||||||
* in the current patch release of FLTK. ** Use for static builds only! **
|
|
||||||
* For more info on this macro, see: http://fltk.org/cmp.php#FLTK_ABI_VERSION
|
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* Note: the link above is outdated.
|
* Notes on FL_ABI_VERSION and deprecated (obsolete) FLTK_ABI_VERSION:
|
||||||
|
*
|
||||||
|
* (1) FLTK_ABI_VERSION is deprecated, but still defined below.
|
||||||
|
* Do NOT define FLTK_ABI_VERSION here - it would be overwritten later.
|
||||||
|
*
|
||||||
|
* (2) FL_ABI_VERSION is now (as of FLTK 1.3.4) defined by configure
|
||||||
|
* or CMake. Do NOT define it here. Its definition will be included
|
||||||
|
* below by "#include <FL/abi-version.h>".
|
||||||
|
*
|
||||||
|
* (3) If you use the provided IDE files (Windows VC++ or Xcode) you should
|
||||||
|
* edit the definition in the provided IDE subdirectory. The correct
|
||||||
|
* file is `/path/to/fltk/ide/<IDE-name>/FL/abi-version.h' .
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
* For more info on FL_ABI_VERSION, see: http://fltk.org/cmp.php#FL_ABI_VERSION
|
||||||
* FIXME: Update docs ...
|
* FIXME: Update docs ...
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* This is work in progress!
|
|
||||||
*
|
|
||||||
* OLD: FLTK_ABI_VERSION deprecated, but defined later (see below)
|
|
||||||
* NEW: FL_ABI_VERSION FIXME: to be defined by configure !
|
|
||||||
*
|
|
||||||
* The intent is to define FL_ABI_VERSION by configure and CMake.
|
|
||||||
* When this is done, the definition will be #include'd here !
|
|
||||||
******************************************************************************
|
|
||||||
*/
|
*/
|
||||||
//#define FL_ABI_VERSION 10304
|
|
||||||
|
#include <FL/abi-version.h>
|
||||||
|
|
||||||
# include "Fl_Export.H"
|
# include "Fl_Export.H"
|
||||||
# include "fl_types.h"
|
# include "fl_types.h"
|
||||||
@ -166,7 +171,8 @@
|
|||||||
|
|
||||||
10300 <= FL_ABI_VERSION <= 10304
|
10300 <= FL_ABI_VERSION <= 10304
|
||||||
|
|
||||||
Note: configure + CMake not yet implemented, see also STR #3161.
|
Note: configure + CMake can be used to define FL_ABI_VERSION, but they
|
||||||
|
do not check validity. This is done here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if FL_ABI_VERSION < FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100
|
#if FL_ABI_VERSION < FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100
|
||||||
@ -184,8 +190,8 @@
|
|||||||
/*
|
/*
|
||||||
FLTK_ABI_VERSION is deprecated (replaced by FL_ABI_VERSION).
|
FLTK_ABI_VERSION is deprecated (replaced by FL_ABI_VERSION).
|
||||||
|
|
||||||
This deprecated constant should be removed in FLTK 1.4.0 and later.
|
This deprecated constant will be removed in FLTK 1.4.0 and later.
|
||||||
Please use FL_ABI_VERSION instead.
|
Please use FL_ABI_VERSION when FLTK 1.4.0 has been released.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef FLTK_ABI_VERSION
|
#ifdef FLTK_ABI_VERSION
|
||||||
|
1
Makefile
1
Makefile
@ -70,6 +70,7 @@ distclean: clean
|
|||||||
$(RM) fltk-config fltk.list makeinclude
|
$(RM) fltk-config fltk.list makeinclude
|
||||||
$(RM) fltk.spec
|
$(RM) fltk.spec
|
||||||
$(RM) FL/Makefile
|
$(RM) FL/Makefile
|
||||||
|
$(RM) FL/abi-version.h
|
||||||
$(RM) documentation/*.$(CAT1EXT)
|
$(RM) documentation/*.$(CAT1EXT)
|
||||||
$(RM) documentation/*.$(CAT3EXT)
|
$(RM) documentation/*.$(CAT3EXT)
|
||||||
$(RM) documentation/*.$(CAT6EXT)
|
$(RM) documentation/*.$(CAT6EXT)
|
||||||
|
@ -389,6 +389,9 @@ without adding link and include paths to the solution.
|
|||||||
|
|
||||||
copy the entire FL directory into the include path
|
copy the entire FL directory into the include path
|
||||||
|
|
||||||
|
add all files from ide\VisualC2008\FL to the FL directory copied above
|
||||||
|
(this is currently only one file: abi-version.h)
|
||||||
|
|
||||||
copy all .lib files from the fltk lib directory to the VC lib directory
|
copy all .lib files from the fltk lib directory to the VC lib directory
|
||||||
|
|
||||||
copy fluid.exe in the fluid directory to the bin directory
|
copy fluid.exe in the fluid directory to the bin directory
|
||||||
@ -500,6 +503,9 @@ without adding link and include paths to the solution.
|
|||||||
|
|
||||||
copy the entire FL directory into the include path
|
copy the entire FL directory into the include path
|
||||||
|
|
||||||
|
add all files from ide\VisualC2010\FL to the FL directory copied above
|
||||||
|
(this is currently only one file: abi-version.h)
|
||||||
|
|
||||||
copy all .lib files from the fltk lib directory to the VC lib directory
|
copy all .lib files from the fltk lib directory to the VC lib directory
|
||||||
|
|
||||||
copy fluid.exe in the fluid directory to the bin directory
|
copy fluid.exe in the fluid directory to the bin directory
|
||||||
@ -638,3 +644,4 @@ Oct 25 2010 - matt: restructured entire document and verified instructions
|
|||||||
Dec 20 2010 - matt: merged with README.win32
|
Dec 20 2010 - matt: merged with README.win32
|
||||||
Dec 22 2010 - AlbrechtS: added newer Cygwin (cross/mingw-w64) options
|
Dec 22 2010 - AlbrechtS: added newer Cygwin (cross/mingw-w64) options
|
||||||
Feb 24 2012 - AlbrechtS: clarified console window FAQ
|
Feb 24 2012 - AlbrechtS: clarified console window FAQ
|
||||||
|
Jul 12 2015 - AlbrechtS: add abi-config.h to files to be copied
|
||||||
|
7
abi-version.cmake.in
Normal file
7
abi-version.cmake.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/*
|
||||||
|
DO NOT EDIT - This file is generated by CMake
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */
|
||||||
|
|
||||||
|
#cmakedefine FL_ABI_VERSION @FL_ABI_VERSION@
|
7
abi-version.in
Normal file
7
abi-version.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/*
|
||||||
|
DO NOT EDIT - This file is generated by configure
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */
|
||||||
|
|
||||||
|
#undef FL_ABI_VERSION
|
16
configure.in
16
configure.in
@ -172,6 +172,21 @@ AC_SUBST(GLLIBBASENAME)
|
|||||||
AC_SUBST(IMGLIBBASENAME)
|
AC_SUBST(IMGLIBBASENAME)
|
||||||
AC_SUBST(CAIROLIBBASENAME)
|
AC_SUBST(CAIROLIBBASENAME)
|
||||||
|
|
||||||
|
has_abiversion=""
|
||||||
|
AC_ARG_WITH(abiversion,
|
||||||
|
[ --with-abiversion Build with FL_ABI_VERSION, e.g. 10304 for FLTK 1.3.4])
|
||||||
|
has_abiversion="$with_abiversion"
|
||||||
|
if test "$has_abiversion" = "yes" ; then
|
||||||
|
has_abiversion=""
|
||||||
|
else
|
||||||
|
if test "$has_abiversion" = "no" ; then
|
||||||
|
has_abiversion=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test ! "$has_abiversion" = "" ; then
|
||||||
|
AC_DEFINE_UNQUOTED(FL_ABI_VERSION, [$has_abiversion], [define to FL_ABI_VERSION])
|
||||||
|
fi
|
||||||
|
|
||||||
dnl Handle compile-time options...
|
dnl Handle compile-time options...
|
||||||
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [[default=no]]])
|
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [[default=no]]])
|
||||||
if test x$enable_debug = xyes; then
|
if test x$enable_debug = xyes; then
|
||||||
@ -1475,6 +1490,7 @@ fi
|
|||||||
|
|
||||||
dnl Write all of the files...
|
dnl Write all of the files...
|
||||||
AC_CONFIG_HEADER(config.h:configh.in)
|
AC_CONFIG_HEADER(config.h:configh.in)
|
||||||
|
AC_CONFIG_HEADER(FL/abi-version.h:abi-version.in)
|
||||||
AC_OUTPUT(makeinclude fltk.list fltk-config fltk.spec FL/Makefile)
|
AC_OUTPUT(makeinclude fltk.list fltk-config fltk.spec FL/Makefile)
|
||||||
|
|
||||||
dnl Make sure the fltk-config script is executable...
|
dnl Make sure the fltk-config script is executable...
|
||||||
|
31
ide/VisualC2008/FL/abi-version.h
Normal file
31
ide/VisualC2008/FL/abi-version.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
DO NOT EDIT - This file must be configured BEFORE building FLTK !
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
============================================================================
|
||||||
|
Important note to IDE users:
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
This file *may* be edited *before* building FLTK with your IDE project,
|
||||||
|
i.e. in /path/to/fltk/ide/<your-ide>/FL/abi-version.h:
|
||||||
|
|
||||||
|
(1) Define FL_ABI_VERSION as described below.
|
||||||
|
(2) Rebuild the entire FLTK library.
|
||||||
|
(3) Optional: install files as usual including THIS file.
|
||||||
|
|
||||||
|
DO NOT edit this file after building the FLTK library, i.e. when this
|
||||||
|
file is already installed in a (system) directory used to build your
|
||||||
|
programs.
|
||||||
|
|
||||||
|
Editing this file w/o rebuilding the entire FLTK library will change
|
||||||
|
the ABI and thus render your programs unusable - they may crash or
|
||||||
|
show other unpredictable errors. You have been warned!
|
||||||
|
|
||||||
|
============================================================================
|
||||||
|
End of important note to IDE users.
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
/* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */
|
||||||
|
|
||||||
|
#define FL_ABI_VERSION 10300
|
31
ide/VisualC2010/FL/abi-version.h
Normal file
31
ide/VisualC2010/FL/abi-version.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
DO NOT EDIT - This file must be configured BEFORE building FLTK !
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
============================================================================
|
||||||
|
Important note to IDE users:
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
This file *may* be edited *before* building FLTK with your IDE project,
|
||||||
|
i.e. in /path/to/fltk/ide/<your-ide>/FL/abi-version.h:
|
||||||
|
|
||||||
|
(1) Define FL_ABI_VERSION as described below.
|
||||||
|
(2) Rebuild the entire FLTK library.
|
||||||
|
(3) Optional: install files as usual including THIS file.
|
||||||
|
|
||||||
|
DO NOT edit this file after building the FLTK library, i.e. when this
|
||||||
|
file is already installed in a (system) directory used to build your
|
||||||
|
programs.
|
||||||
|
|
||||||
|
Editing this file w/o rebuilding the entire FLTK library will change
|
||||||
|
the ABI and thus render your programs unusable - they may crash or
|
||||||
|
show other unpredictable errors. You have been warned!
|
||||||
|
|
||||||
|
============================================================================
|
||||||
|
End of important note to IDE users.
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
/* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */
|
||||||
|
|
||||||
|
#define FL_ABI_VERSION 10300
|
31
ide/VisualC6/FL/abi-version.h
Normal file
31
ide/VisualC6/FL/abi-version.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
DO NOT EDIT - This file must be configured BEFORE building FLTK !
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
============================================================================
|
||||||
|
Important note to IDE users:
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
This file *may* be edited *before* building FLTK with your IDE project,
|
||||||
|
i.e. in /path/to/fltk/ide/<your-ide>/FL/abi-version.h:
|
||||||
|
|
||||||
|
(1) Define FL_ABI_VERSION as described below.
|
||||||
|
(2) Rebuild the entire FLTK library.
|
||||||
|
(3) Optional: install files as usual including THIS file.
|
||||||
|
|
||||||
|
DO NOT edit this file after building the FLTK library, i.e. when this
|
||||||
|
file is already installed in a (system) directory used to build your
|
||||||
|
programs.
|
||||||
|
|
||||||
|
Editing this file w/o rebuilding the entire FLTK library will change
|
||||||
|
the ABI and thus render your programs unusable - they may crash or
|
||||||
|
show other unpredictable errors. You have been warned!
|
||||||
|
|
||||||
|
============================================================================
|
||||||
|
End of important note to IDE users.
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
/* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */
|
||||||
|
|
||||||
|
#define FL_ABI_VERSION 10300
|
31
ide/Xcode4/FL/abi-version.h
Normal file
31
ide/Xcode4/FL/abi-version.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
DO NOT EDIT - This file must be configured BEFORE building FLTK !
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
============================================================================
|
||||||
|
Important note to IDE users:
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
This file *may* be edited *before* building FLTK with your IDE project,
|
||||||
|
i.e. in /path/to/fltk/ide/<your-ide>/FL/abi-version.h:
|
||||||
|
|
||||||
|
(1) Define FL_ABI_VERSION as described below.
|
||||||
|
(2) Rebuild the entire FLTK library.
|
||||||
|
(3) Optional: install files as usual including THIS file.
|
||||||
|
|
||||||
|
DO NOT edit this file after building the FLTK library, i.e. when this
|
||||||
|
file is already installed in a (system) directory used to build your
|
||||||
|
programs.
|
||||||
|
|
||||||
|
Editing this file w/o rebuilding the entire FLTK library will change
|
||||||
|
the ABI and thus render your programs unusable - they may crash or
|
||||||
|
show other unpredictable errors. You have been warned!
|
||||||
|
|
||||||
|
============================================================================
|
||||||
|
End of important note to IDE users.
|
||||||
|
============================================================================
|
||||||
|
|
||||||
|
/* define FL_ABI_VERSION as 10x0y for FLTK ABI version 1.x.y */
|
||||||
|
|
||||||
|
#define FL_ABI_VERSION 10300
|
Loading…
Reference in New Issue
Block a user