Unfortunately commit 5417ea5f1f broke
simple user projects by propagating unknown CMake target names to
linker requirements of user projects.
This commit tries to fix this w/o breaking the intentions of PR #954.
This program is built only when using CMake and a GNU or Clang
compiler to detect shadowed variables in header files.
Developers should fix such warnings whenever they see them during the
build to avoid user reports.
More precise: ... if the last picked item is in a "detached submenu",
i.e. in one addressed by another menu item with the FL_SUBMENU_POINTER
flag set.
Also: document *why* this is the case, and what the result value is.
* CMake integration, no autotiools
* alignment panel is now correctly renamed to setting panel
* source view is now correctly renamed to code view
* Merge FLTK FLUID docs into FLUID user manual.
* Add two simple entry tutorials
* Remove FLUID chapter form FLTK docs.
* GitHub action to generate HTML and PDF docs and
make the available as artefacts
Parts of this commit fix the usage of CMake targets in the generation
process of fltk-config modified by PR #954.
The rest improves handling of variables used to generate fltk-config,
removes obsolete comments, documents variables like GLLIBS etc. which
had to be done anyway.
This carries include directories and the required link flags.
Several libraries brought in through pkg_check_modules aren't linked correctly using the _LDFLAGS variables.
Instead, they link the libraries directly with `-l`.
This is problematic because it doesn't properly pull in the actual directory of the library being linked when it is not in a system library directory.
Likewise, the necessary include directories for several of these targets aren't properly set either.
Linking against the imported targets automatically pulls in the necessary include directories.
* CMake: Improve detection of the GLU library and GL/glu.h header file
Locate the GLU library and header independent of the GL library and header locations.
Add the GLU header location to necessary target_include_directory calls.
* CMake: Locate and use the GL include directory
Find the GL include directory and use it in target_include_directories calls.
- Add 'int Fl_Terminal::handle_unknown_char(int drow, int dcol)'
to write the "unknown" character to the intended display position.
- Define Fl_Terminal::unknown_char as a static variable to avoid
redundancy. In the future this might be overridden by users.
- simplify and unify build option output
- alignment can be changed in only 2 macros in CMake/fl_summary.cmake
- output system library location of image libraries if applicable
Some old platforms (NetBSD, AIX) implement the common stdio "putchar()"
function as a global macro which poisons the global namespace, preventing
all C and C++ programs from using "putchar()" as a function or method.
There was a long thread about this in fltk.coredev during the period
Mar 25 2024 ~ Apr 4 2024, subject "RFC: Fl_Terminal::putchar() in public API"
as to why we have no choice but to not use putchar() as a method name.
libdecor/build/Makefile: unused anyway (previously used building demos)
src/CMakeLists.txt: broke some user builds, see fltk.general, thread
"-no-pie in FLTK Libraries build." (Mar 17, 2024).
Todo: check usage of "-fPIC" (libdecor builds)