fltk/documentation
Albrecht Schlosser 5175192755 CMake: build shared libs with OPTION_CAIROEXT (issue #250)
- remove separate libfltk_cairo to avoid cyclic dependencies, but
- keep a dummy libfltk_cairo in 1.4.0 for backwards compatibility
- move cairo/Fl_Cairo.cxx to src/Fl_Cairo.cxx
- add preliminary Cairo support for Visual Studio (MSVC)

Static linking is not affected by this change, but users building
with hand-made Makefiles will have to remove libfltk_cairo starting
with FLTK 1.4.0. The dummy library can be linked for backwards
compatibility but it will be removed later (in 1.4.x or 1.5.0).

The shared FLTK library libfltk.{so|dylib|dll|..} depends on libcairo
if and only if FLTK is built with one of the Cairo options. This has
always been the case for OPTION_CAIROEXT but is now also true if only
OPTION_CAIRO is selected, i.e. FLTK programs linked with a Cairo
enabled shared FLTK library will also be linked with libcairo. The same
is true for configure options --enable-cairo and --enable-cairoext,
respectively.

Preliminary Cairo support for MSVC now detects a Cairo installation
using the CMake variable FLTK_CAIRO_DIR which must be set by the user.
Note that this feature is temporary and may be changed in the future
for a better and more comfortable version.
2023-03-09 17:34:05 +01:00
..
src Wayland.dox: more details about window positioning 2023-03-08 17:52:21 +01:00
.gitignore Fix build process of PDF docs on macOS and update .gitignore 2022-09-23 15:45:45 +02:00
CMakeLists.txt CMake: Fix some special cases regarding generation of docs 2022-10-03 10:49:43 +02:00
copyright.dox.in Improve automatic documentation generation 2022-08-12 17:49:53 +02:00
Doxyfile.in CMake: build shared libs with OPTION_CAIROEXT (issue #250) 2023-03-09 17:34:05 +01:00
generated.dox.in Improve automatic documentation generation 2022-08-12 17:49:53 +02:00
make_header PDF docs: generate LaTeX header file from source 2020-09-21 14:32:46 +02:00
make_pdf Clarify offscreen drawing documentation 2020-11-08 15:43:34 +01:00
Makefile Move global FLTK options into new app fltk-admin (#560) 2023-01-21 17:14:41 +01:00
README.txt Remove $Id$ tags, update URL's, and more 2020-07-06 20:28:20 +02:00

README.txt (documentation)
---------------------------
FLTK 1.3 (and higher) documentation is available in HTML and PDF format.
The documentation must be generated in a separate step or downloaded
from FLTK's software download pages. The documentation can also
be accessed online.

To read the docs after downloading or generating them, open the files:

    documentation/html/index.html
    documentation/fltk.pdf

with your browser or PDF viewer, respectively.


Online Documentation:
---------------------
A documentation version is available online at the FLTK web site,
along with the PDF version of the manual. The docs on the web site
are usually somewhat older (latest release). Use this URL to find
the current online documentation:

    https://www.fltk.org/documentation.php


Documentation Download:
-----------------------
To download pre-generated docs, go to

    https://www.fltk.org/software.php

and look for the files

    fltk-<version>-docs-html.tar.gz
    fltk-<version>-docs-pdf.tar.gz

Extract the documentation tarballs into the same directory as you
did with the source tarball.


Generation of Documentation (common part):
------------------------------------------
To generate the documentation yourself, you should have Doxygen
version 1.8 or later (recommended version is 1.8.13 or later).
Older Doxygen versions than 1.8 may or may not work.

To generate the PDF version you also need a current version of LaTeX.
You can use the packages tetex (older) or texlive (current) if your
distribution provides them. You may need to install additional fonts
and other sub-packages for the PDF version to be generated correctly.

Note: packages known to work under Ubuntu 18.04:

  texlive texlive-extra-utils texlive-latex-extra texlive-font-utils


Generation of Documentation with autoconf (configure) + make:
-------------------------------------------------------------
Use "make html" in the documentation directory to generate the HTML
documentation, or "make pdf" to generate the PDF version. "make docs"
generates both versions in one step (as would do "make clean html pdf").

To read the HTML or PDF docs, see above.


Generation of Documentation with CMake + make:
----------------------------------------------
We assume that you use an out-of-source build as recommended.
Documentation is not generated in a default build. You must set one or
more CMake options using cmake-gui, ccmake, or cmake -DOPTION...

These options are predefined to OFF and can be switched ON:

  - OPTION_BUILD_HTML_DOCUMENTATION:BOOL=OFF    target: html
  - OPTION_BUILD_PDF_DOCUMENTATION:BOOL=OFF     target: pdf

  - OPTION_INSTALL_HTML_DOCUMENTATION:BOOL=OFF
  - OPTION_INSTALL_PDF_DOCUMENTATION:BOOL=OFF

If you switch one or both of the first two options ON, then the
targets 'html' and/or 'pdf' are generated, respectively. Target 'docs'
is added to generate both 'html' and 'pdf'. As said above, you need
installed Doxygen and LaTeX software for this to work.

Use "make html" in the root or documentation directory of the build tree
to generate the HTML documentation, or "make pdf" to generate the PDF
version. "make docs" generates both versions in one step (as would do
"make clean html pdf").

To read the HTML or PDF docs, see above, but use the build directory.

Note: if you enable one or more of the "*INSTALL*" options, then
`make install' will install the docs, but you must still build them
manually, because the generation is not included in the standard ('all')
target. This may be changed in the future.


FLTK Developer Snapshots or Git Usage:
--------------------------------------
There is no pre-generated documentation available if you use a current
developer snapshot or git. You must generate the documentation
yourself or access the online documentation.


Bugs and Feature Requests:
--------------------------
If you find any typos, things that are unclear, or would like to
contribute an example, section, or chapter to the FLTK manual, please
post a question in the fltk group fltk.general or post a bug
report or feature request. For more information see this page:

    https://www.fltk.org/bugs.php