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.
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.
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.
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/).
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.
... 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.
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).
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
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>
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.
- 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
- 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.
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.
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
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
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
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
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
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
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
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
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
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
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
"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
- 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
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