Commit Graph

112 Commits

Author SHA1 Message Date
Albrecht Schlosser
fd5cd80935 Introduce "Modern CMake" in FLTK
This is a big commit and there are too many changes to list them all.
The main changes are:

- rename all CMake build options to 'FLTK_*'
- export library targets with namespace (prefix) 'fltk::'
- standardize shared library target names with suffix '-shared'
- set public build properties on libraries for consumers
- document library names and aliases in README.CMake.txt
- document changes in "Migrating Code from FLTK 1.3 to 1.4"
- partial backwards compatibility for old user projects

Included but not directly related changes:

- fix Windows (Visual Studio) DLL build
- add CMake function fl_debug_target() to show target properties
- don't build test programs if FLTK is a subproject
- internal: reformat CMake code: remove space before '('

Thanks to Matthias and Manolo for their help, testing, and feeback.
2024-02-07 18:37:34 +01:00
Albrecht Schlosser
32514e6d2b Quote doxygen command where necessary
... if the doxygen path includes spaces.

Done for configure/make + CMake.
2024-01-11 01:47:07 +01:00
erco77
6842a43a31
Fl_Terminal widget (#800)
Pull Fl_Terminal widget from Greg's fork
2023-11-14 07:01:52 -08:00
Albrecht Schlosser
f5afea3421 Update Doxyfile.in again, now using all defined doxygen tags
The process to generate the docs now uses the full Doxyfile as given
by `doxygen -u Doxyfile.in` with a specific doxygen version, in this
commit version 1.8.14.

There's only one addition: 'HTML_COLORSTYLE = TOGGLE' which has been
added to doxygen in version 1.9.5. We're using it now to give the user
the choice to select a "dark mode" or "light mode" theme if the docs
are generated with doxygen 1.9.5 or later.

Unknown doxygen tags are now filtered silently and logged in files
documentation/Doxyfile_error.log and documentation/Doxybook_error.log,
respectively.
2023-09-07 18:34:04 +02:00
Albrecht Schlosser
41ca8f2050 Update Doxyfile.in from doxygen version 1.5.5 to 1.8.14
Most (if not all) doxygen tags introduced after 1.5.5 are commented out
  to avoid doxygen warnings about obsolete or unknown tags, except
  those tags that need a specific value.

Add 'HTML_COLORSTYLE = TOGGLE' (since 1.9.5) for better user experience.
  With this tag users can switch between dark and light mode *if*
  the docs were generated with doxygen 1.9.5 or later.

Enable search engine.

Log doxygen conversion errors and warnings to Doxy*_error.log,
  i.e. silence the doxygen conversion process.

documentation/src/index.dox: Remove background color from html
  index page for better contrast when using dark mode.
2023-09-07 18:34:04 +02:00
Albrecht Schlosser
3ff53dc201 Improve doxygen documentation generation
Under configure+make it is not possible to enable driver documentation.
Therefore the '@DRIVER_DOCS@' variable must always be cleared.
Add a comment on how to build the driver docs using the Makefile.

Simplify CMake whitespace (trailing LF) handling.

Make sure we find the correct source dir even if FLTK is included
in a sub build (s/CMAKE_SOURCE_DIR/FLTK_SOURCE_DIR/).
2023-08-30 17:24:39 +02:00
Albrecht Schlosser
854b671cdc Doxygen docs w/configure/make: convert config to current version
The intermediate files 'Doxyfile' and 'Doxybook' are now converted
to the current Doxygen version and the short form ('-s') when using
configure+make as it was already done in CMake builds.

This is to avoid Doxygen warnings and for better readability
of the Doxygen config files which are created during the build.
2023-08-30 15:56:17 +02:00
Albrecht Schlosser
be657471e7 Documentation/PDF: always use the configured doxygen executable
... to create the LaTeX header file used by doxygen.

This fix applies to both configure/make and CMake.

The existing version used `doxygen` which erroneously ran the doxygen
version from the current 'PATH' which might issue doxygen warnings and
potentially create a wrong LaTeX header file if the configured doxygen
program was not the one in the user's path.
2023-08-29 17:25:10 +02:00
Matthias Melcher
1fc269b0d4
Move global FLTK options into new app fltk-admin (#560) 2023-01-21 17:14:41 +01:00
Albrecht Schlosser
6472f9b041 Fix build process of PDF docs on macOS and update .gitignore
Note: the syntax of command/switch `sed -i` is slightly different
  on macOS vs. Linux and should not be used.

Move .gitignore parts referring to /documentation/ to their own file
  'documentation/.gitignore' and add new generated file(s).
2022-09-23 15:45:45 +02:00
Albrecht Schlosser
ab61c03433 Improve automatic documentation generation
This removes the need to edit the copyright year before generating
  the documentation (every year, in several files) and adds some
  technical information (doxygen generation date, doxygen version,
  and FLTK Git revision) in both HTML and PDF docs.

- auto-generate copyright year (current year) used in several places
- include FLTK Git revision in HTML and PDF docs
- include generation date and doxygen version
- replace special html footer which didn't work well with default footer
2022-08-12 17:49:53 +02:00
engelsman
2d18c6f650
Documentation on widget coordinates and layout, plus new test programs (#304)
Add coordinates and layout section to user manual

add section to user manual to clarify the use of window-relative
coordinates in both Fl_Group and Fl_Window containers, and include
brief descriptions of current layout manager widgets in one place.

add test/coordinates.cxx, test/wizard.cxx and related screenshots
under documentation/src.

update CMakeLists.txt, Makefile and .gitignore for new files.

Co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2021-12-08 15:00:33 +01:00
Albrecht Schlosser
b713b91975 PDF docs: generate LaTeX header file from source
The LaTeX header file used when creating PDF documentation depends on
the doxygen and latex versions, respectively.

The old header file 'documentation/src/fltk-book.tex.in' had been
generated manually and needed to be updated for new doxygen versions
which made the PDF documentation generation dependent on the
doxygen/latex versions on the build system.

The new LaTeX header file 'fltk-book.tex' is generated by doxygen,
i.e. taking into account the doxygen and latex versions on the build
system and "edited" to include the page title defined in the new
file 'documentation/src/fltk-title.tex.in'.

This makes the PDF documentation independent of the doxygen and
latex versions of the build system.
2020-09-21 14:32:46 +02:00
Albrecht Schlosser
720b84ef9d CMake: refactor and reformat CMake files
- raise minimum CMake version from 2.6.3 to 3.2.3 (Jun 01, 2015)
- indent all CMake files according to the CMP (2 col.)
- refactor FLTK version number definitions and usage
- unify CMake and autoconf/configure variable names:
  - FL_VERSION -> FLTK_VERSION
  - FL_MAJOR_VERSION -> FLTK_VERSION_MAJOR
  - etc. for _MINOR_ and _PATCH_, respectively
  - note: this does not affect FL_VERSION etc. in source code
- generate "export headers" for all libraries (experimental: OFF)
- port some forgotten goodies from branch-1.3 to master
- merge and improve macro 'create_example' (WIP)
- remove "temporary" options and code for older CMake versions
- include and use 'GenerateExportHeader' (experimental, WIP: OFF)
  - note: created header files are not yet used
- build only *one* DLL with Visual Studio (tested, works)
  - similar to the bundled IDE projects in 1.3.x
- add some dynamically linked test/demo programs ('*-shared')
  if shared libraries are built (WIP)
- split 'macros.cmake': use one file per macro
2020-07-15 00:34:53 +02:00
Duncan Gibson
7038559338 add resize documentation as per STR3433
add resize chapter to documentation, plus images,
based on Article #415: How does resizing work?
https://www.fltk.org/articles.php?L415

see also https://www.fltk.org/str.php?L3433
2020-07-13 23:12:54 +02:00
Albrecht Schlosser
f09e17c3c5 Remove $Id$ tags, update URL's, and more
- remove obsolete svn '$Id$' tags from all source files
- update .fl files and generated files accordingly
- replace 'http://www.fltk.org' URL's with 'https://...'
- replace bug report URL 'str.php' with 'bugs.php'
- remove trailing whitespace
- fix other whitespace errors flagged by Git
- add and/or fix missing or wrong standard headers
- convert tabs to spaces in all source files

The only relevant code changes are in the fluid/ folder where
some .fl files and other source files were used to generate
the '$Id' headers and footers.
2020-07-06 20:28:20 +02:00
Albrecht Schlosser
3f1f871585 Drop 1.0 compatibility; document 1.4 migration
The FLTK 1.0 compatibility support by defining macro 'FLTK_1_0_COMPAT'
did no longer work since FLTK 1.3.x and nobody complained. Hence we
can safely remove this "feature".

Documentation changes:

 - Drop chapter 'Migrating Code from FLTK 1.0 to 1.1'
 - Drop chapter 'Migrating Code from FLTK 1.1 to 1.3'
 - Add  chapter 'Migrating Code from FLTK 1.3 to 1.4'

The removed chapters are still available in FLTK 1.3 docs.
2020-01-08 18:41:50 +01:00
Albrecht Schlosser
6408823b3c Remove obsolete replacement of CMAKE_SOURCE_DIR.
The correct fix in the previous commit (svn r12636) would have been to
replace CMAKE_SOURCE_DIR with FLTK_SOURCE_DIR since CMAKE_SOURCE_DIR is
no longer used in doxygen docs generation. Sorry for the noise.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12637 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-16 23:37:14 +00:00
Ian MacArthur
98413277a8 Implement Jakub's patch for the missing FLTK_SOURCE_DIR in
the doxyfile generation of the html docs.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12636 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-16 22:17:58 +00:00
Albrecht Schlosser
2098d8bfd8 Generate Doxyfile and Doxybook from common source file Doxyfile.in.
Now we have less files to edit, and Doxyfile.in is shared with the
CMake generation of Doxyfile and Doxybook.

Besides that two files with FLTK version numbers are now removed (less
work for future version updates).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10762 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-06-16 13:18:28 +00:00
Albrecht Schlosser
b02747d157 Simplify documentation generation, remove obsolete file.
Doxybook and Doxyfile have been compared and differences have
been adjusted so there are only _relevant_ differences now.

The dependency on fltk-book.tex in html generation has been removed.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10718 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-25 17:23:21 +00:00
Albrecht Schlosser
0663c45e9c Documentation: move PDF creation from Makefile to new script 'make_pdf'.
The new script make_pdf can be used in the Makefile and in the CMake
PDF generation process. CMake update will follow in a later step.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10702 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-13 20:33:46 +00:00
Albrecht Schlosser
a1c0b1b08c Add html doc dependency on (unused) src/fltk-book.tex for doxygen.
This is not intended and could also be removed from Doxyfile, but
currently this is the best way - more changes to come...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10361 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-10-05 22:39:31 +00:00
Albrecht Schlosser
7aa27859a5 Improve documentation generation (pdf only).
Add file VERSION that includes the FLTK version number (only), generate
fltk.pdf with automatic copyright year and doxygen version.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10352 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-10-04 23:42:17 +00:00
Greg Ercolano
6d4c2a2e22 Introducing a FAQ to the FLTK docs.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9146 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-10-25 02:17:29 +00:00
Greg Ercolano
4f4a8fc3c7 Modifications to all LGPL headers for STR #2685.
(to clarify static exception LGPL by changing license references)



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8864 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-07-19 04:49:30 +00:00
Albrecht Schlosser
128636292a Added refman.pdf to clean target in documentation/Makefile.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8195 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-05 23:00:33 +00:00
Albrecht Schlosser
3d470e8c0d Modified documentation/Makefile to correctly generate docs.
Generating HTML and PDF docs is now independent, order doesn't matter.

New and modified make targets:

 - html: generate HTML docs only
 - pdf:  generate PDF docs only
 - dist: generate HTML and PDF docs (use for distribution files)
 - html-online: HTML docs with "stripping" modification dates
 - alldocs: retained as synonym for 'dist'

To do: README file must be updated...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8191 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-05 12:55:10 +00:00
Albrecht Schlosser
09d7842f86 Documentation: fixed copying of tiny.png to documentation directory.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8158 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-01 14:12:10 +00:00
yuri
181492b446 fix install without building fltk.pdf
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8145 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-30 21:08:01 +00:00
Greg Ercolano
3a9d8a11f9 Removing unused doc dependencies on images.
Mods as per conversation on fltk.development today, 
    subject: "Re: Remove image dependencies ?  [was: Re: [Library] r8091 - in branches/branch-1.3:FLdocumentation/src]"




git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8116 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-27 00:20:28 +00:00
Greg Ercolano
5a2b5dcf1b New image added to documentation dependencies.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8095 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-21 17:07:14 +00:00
Greg Ercolano
ea3cb98f4f IMAGEFILES macro: gif -> png
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7986 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-09 01:03:59 +00:00
Greg Ercolano
9e2d044caa As per thread on fltk.development: "RFC: Docs - getting rid of .eps files"
Summary:
    Get rid of eps files, 
    change all doxygen '\image latex' references to eps files to png/jpeg instead,
    convert doxygen images from gif -> png (to support html+latex).

Actual operations:

		1) svn remove *.eps
		2) convert all gifs ->  png
		3) svn remove *.gif
		4) svn add *.png
		5) For jpeg/png images, change all \image latex foo.eps .. ->  \image latex foo.[jpg,png] ..
		6) For gif images, change all \image html foo.gif .. ->  \image html foo.png
		   and (harder to do): change \image latex foo.eps .. ->  \image latex foo.png ..
		7) Remove EPSFILES macro from documentation/Makefile 
		   and remove eps related dependencies that were added recently



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7981 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-08 23:53:04 +00:00
Greg Ercolano
41c28597b9 Added rules to create eps files (if they don't exist) using ImageMagick convert(1).
This would probably allow us to remove the documentation/src/*.eps files from svn at some point.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7958 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-06 03:00:06 +00:00
Greg Ercolano
81dd665b46 Removed unused FL.eps (see today's thread on fltk.development: "RFC docs")
Adjusted documentation/Makefile: in IMAGEFILES and EPSFILES: removed duplicates, added missing, sorted all.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7957 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-06 02:47:27 +00:00
Greg Ercolano
4abadf9df5 Fixed tree-elements image
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7955 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-05 16:07:55 +00:00
Albrecht Schlosser
3226204369 Fixed one doxygen warning and cleaned up documentation/Makefile.
Removed unused statements and old comment.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7953 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-05 14:45:06 +00:00
Greg Ercolano
65d02841c2 Added latex \image refs to tree+table docs,
and eps image filenames to documentation/Makefile.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7952 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-05 09:50:59 +00:00
Matthias Melcher
903107bca9 Fixed yet more Copyright to 2010.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7905 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-28 21:22:55 +00:00
yuri
ca3984892f fix generated manpages cleaning
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6778 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-04-24 09:20:17 +00:00
engelsman
c95505b462 removed numbering from doxygen chapters and navigation bars,
moved class/function reference pages to end of index table,
swapped editor/drawing chapters in Doxybook for PDF version



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6721 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-03-25 23:12:48 +00:00
Albrecht Schlosser
825f33c05a Moved the stripping of date comments (strip_tags) to its own target
"html-dist", just like it has been done for pdf-dist.

Stripping the date comments roughly doubled the time of html generation
for daily use, although it is only needed before a web update.

*** Please use "make html-dist" before updating the web docs. ***

Just for reference: Measurement values on my Windows system with cygwin:
 - make html	1:01 minutes
 - strip_tags	1:05 minutes
 - strip_tags	0:49 minutes after removal of cat

Todo:
 - Why do we need the external script strip_tags, are there reasons not to
   integrate it in the Makefile?
 - If it would be in the Makefile, should we use ${RM} instead of literally
   using "rm" ?


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6702 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-03-21 10:29:42 +00:00
Fabien Costantini
3ed30905a9 Updated the make html process, adding a new strip functionality that removes the date in each and every html autogenerated files. Now a constant message is displayed thus reducing drastically the size of future web updates.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6686 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-03-14 20:29:11 +00:00
Matthias Melcher
167d767e0f Changed the copyright to 2009 for header files. Still todo: src and test directory.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6614 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-01 16:11:32 +00:00
Albrecht Schlosser
609f519533 Fixed documentation dependencies and changed Doxybook (for latex/pdf gen.)
to _not_ generate the html files.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6557 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-12-07 13:35:10 +00:00
Fabien Costantini
73a2fa5b99 Doxygen documentation:
- Fixed recent documentation update problems in fl_draw.cxx : \ and @ char must be doubled otherwise interpreted as doxygen keywords
- Fixed some doxygenized parameters problems in Fl_Preferences.cxx
- Added the treeview mode, now featuring a vertical left tree browser in html doc
- Splitted html configuration file from pdf configuration file, now a new Doxybook config file permits to customize independtly both html and pdf modes without risking side effects and also without assuming an fltk user will have the Tex tools installed to generate the html doc. Now only pdf generation will need LaTex tools.
- Updated the doxygen based documentation to revison 9 and added new significant contributors to index.dox in alphabetical order.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6539 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-12-03 01:02:10 +00:00
Albrecht Schlosser
587a23b3bb Minor documentation Makefile tweaks.
Removed fltk.pdf from svn:ignore and make distclean.
Added svn:ignore for man pages in documentation/src.
Added *.log to make clean in documentation.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6465 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-10-19 09:46:08 +00:00
Fabien Costantini
83c49f6fba Documentation makefile: Fixed make install would return an error if html folder does not exist.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6455 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-10-17 20:46:27 +00:00
Fabien Costantini
6ff84799a3 Moved latex related files to src, man files to src, updated Makefile and Doxyfile accordingly.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6453 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-10-17 12:42:28 +00:00