Skip to content

Commit

Permalink
Add FLTK version test program examples/fltk-versions.cxx.
Browse files Browse the repository at this point in the history
This program can be used to verify that the FLTK runtime system
(ABI version) is binary compatible with the compiled and linked program.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10712 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
  • Loading branch information
Albrecht Schlosser committed Apr 21, 2015
1 parent b79ad86 commit 333b526
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
# /examples/
/examples/*.exe
/examples/clipboard
/examples/fltk-versions
/examples/howto-add_fd-and-popen
/examples/howto-browser-with-icons
/examples/howto-drag-and-drop
Expand Down
1 change: 1 addition & 0 deletions examples/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ SHELL = /bin/sh

# Executables
ALL = clipboard$(EXEEXT) \
fltk-versions$(EXEEXT) \
howto-add_fd-and-popen$(EXEEXT) \
howto-browser-with-icons$(EXEEXT) \
howto-drag-and-drop$(EXEEXT) \
Expand Down
85 changes: 85 additions & 0 deletions examples/fltk-versions.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
//
// "$Id$"
//
// Library version test program for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2015 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/Fl_Window.H>
#include <FL/Fl_Box.H>
#include <FL/fl_ask.H>

static char version[8][80] = { "","","","","","","","" };

int main(int argc, char **argv) {

int versions = 0;

sprintf(version[versions++],"FL_VERSION = %6.4f",FL_VERSION);
sprintf(version[versions++],"Fl::version() = %6.4f %s",Fl::version(),
(FL_VERSION == Fl::version()) ? "" : "***");

#ifdef FL_API_VERSION
sprintf(version[versions++],"FL_API_VERSION = %6d",FL_API_VERSION);
sprintf(version[versions++],"Fl::api_version() = %6d %s",Fl::api_version(),
(FL_API_VERSION == Fl::api_version()) ? "" : "***");
#endif

#ifdef FL_ABI_VERSION
sprintf(version[versions++],"FL_ABI_VERSION = %6d",FL_ABI_VERSION);
sprintf(version[versions++],"Fl::abi_version() = %6d %s",Fl::abi_version(),
(FL_ABI_VERSION == Fl::abi_version()) ? "" : "***");
#endif

#ifdef FLTK_ABI_VERSION
sprintf(version[versions++],"FLTK_ABI_VERSION = %6d",FLTK_ABI_VERSION);
#endif

for (int i=0; i<versions; i++) {
printf("%s\n",version[i]);
}

#ifdef FL_ABI_VERSION
if (FL_ABI_VERSION != Fl::abi_version()) {
printf("*** FLTK ABI version mismatch: headers = %d, lib = %d ***\n",
FL_ABI_VERSION, Fl::abi_version());
fflush(stdout);
fl_message("*** FLTK ABI version mismatch: headers = %d, lib = %d ***",
FL_ABI_VERSION, Fl::abi_version());
// exit(1);
}
#endif

Fl_Window *window = new Fl_Window(630,300);

Fl_Box *box[8];
for (int i=0; i<4; i++) {
box[2*i] = new Fl_Box( 10,40+40*i,300,30,version[2*i]);
box[2*i+1] = new Fl_Box(320,40+40*i,300,30,version[2*i+1]);
}

for (int i=0; i<8; i++) {
box[i]->labelfont(FL_COURIER);
box[i]->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE);
}

window->end();
window->show(argc, argv);
return Fl::run();
}

//
// End of "$Id$".
//

0 comments on commit 333b526

Please sign in to comment.