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)
Option: ./configure --disable-test build test programs (default=yes)
Thanks for the patch(es) to @michaelbaeuerle.
I added `make test` to be able to build the test programs from the
FLTK root directory if FLTK was configured with --disable-test.
Fix usage of vsscanf in Fl_Unix_System_Driver::clocale_vsscanf().
Final commit of all patches provided by the OP of issue #937 - if
everything works now.
Some of these accessor methods should be private so they can't be used
by user code but - due to compiler issues - they must be public for
HP-UX 11.11 (for details see GitHub Issue #937).