Commit Graph

89 Commits

Author SHA1 Message Date
Albrecht Schlosser
ce777110fe Fix whitespace (trailing spaces) 2022-11-23 13:08:37 +01:00
ManoloFLTK
0ba051994a Have OPTION_USE_WAYLAND / --enable-wayland set to ON by default 2022-11-23 06:17:31 +01:00
ManoloFLTK
4dcced5b29 Wayland+CMake: stop forcing GTK_FOUND to 0
This removes the cause of this developer's message
  # FIXME: This needs to be redesigned! Forcing GTK_FOUND to 0 (NO) is a bad
  # FIXME: idea because there could be unwanted side effects. AlbrechtS
2022-11-23 05:59:57 +01:00
ManoloFLTK
615b731783 CMake+Wayland: check for presence of required software modules
Also, remove hardcoded path to wayland-protocols when
CMake version ≥ 3.4
2022-11-18 09:10:22 +01:00
Matthias Melcher
edf7510dda
Make building Fluid optional. (#539) 2022-11-13 20:16:54 +01:00
ManoloFLTK
a6b3903b89 Wayland + CMake: fix generated fltk-config that lacked -lX11 2022-11-08 11:37:49 +01:00
ManoloFLTK
260a446609 macOS + homebrew: restore building with CMake's OPTION_APPLE_X11
These option combinations work:
-DOPTION_APPLE_X11
-DOPTION_APPLE_X11 -DOPTION_USE_CAIRO

But
-DOPTION_APPLE_X11 -DOPTION_USE_PANGO
is not possible because homebrew doesn't provide the pangoxft package.
2022-10-16 08:29:59 +02:00
ManoloFLTK
203e7b7098 New OPTION_WAYLAND_ONLY for CMake to build pure Wayland platform. 2022-09-09 15:19:15 +02:00
ManoloFLTK
c720aae515 Make hybrid Wayland/X11 platform. 2022-08-29 12:15:32 +02:00
Albrecht Schlosser
b4bbc53c5e Reorder CMake build options for better order of include directories
This is only one minor step to remove issues of some CMake options
that can cause conflicting include directories ("-I..." switches).

See implementation note in CMake/options.cmake.
2022-04-07 19:19:40 +02:00
Albrecht Schlosser
8bd67f40da CMake: Restore removed HAVE_LIBPNG setting
This was removed unintentionally.
2022-04-05 15:36:28 +02:00
Albrecht Schlosser
cc6a7d008b Remove obsolete config variable 'HAVE_LIBPNG_PNG_H'
This variable has never been used in the code. Configure and CMake
look for a *working* libpng (HAVE_PNG) and set variable HAVE_PNG_H
if the header <png.h> can be included.

The alternative to include <libpng/png.h> is always used in the #else
clause and doesn't need its own config variable. Configure and CMake
log what they find, hence this extra variable is not necessary.
2022-04-04 21:10:25 +02:00
Albrecht Schlosser
5a8b9d9130 Improve libpng header search (notably on macOS)
Fix usage of internal cache variables so users can switch between
system and builtin libpng reliably.
2022-04-03 23:34:09 +02:00
ManoloFLTK
52015f2a26 Restore CMake build with OPTION_USE_GL=0 2022-03-22 22:16:03 +01:00
Albrecht Schlosser
59e028a3a7 CMake: Improve fltk-config generation
- set executable permissions on MinGW and more platforms
- add missing link libraries
- improve code formatting (indent)
- mark some variables as advanced
- simplify search for glib-2.0
2022-03-13 21:56:05 +01:00
ManoloFLTK
3718effc43 Add the Wayland platform to FLTK 1.4 2022-03-04 15:41:00 +01:00
Albrecht Schlosser
04ccc8cc46 Remove experimental platforms Android, Pico, SDL (PR #376)
... as discussed in fltk.coredev: "FLTK 1.4.0 release schedule"
https://groups.google.com/g/fltkcoredev/c/PDbHTRpXVh0/m/JqboexZ_AwAJ
2022-01-23 18:12:47 +01:00
Albrecht Schlosser
5438954d8c Generate FL/fl_config.h rather than FL/abi-version.h
... as discussed in fltk.coredev in thread "RFC: introduce public
config header <FL/fl_config.h>", see:
https://groups.google.com/g/fltkcoredev/c/xLCs1AIXMVo/m/MHZpQggzAQAJ

- Rename abi-version.h to fl_config.h, rename input files,
  update dependencies, .gitignore, CMake, configure and Makefiles.

- Include Cairo options in FL/fl_config.h

- Rename FLTK_USE_CAIRO to FLTK_HAVE_CAIROEXT for consistency.

- Include <FL/fl_config.h> in config.h and wherever necessary,
  fix include order (move FL/Fl.H to the top) and more.

- Move USE_X11 to fl_config.h and rename to FLTK_USE_X11

- Do not include <config.h> in Cairo demo program which is no
  longer required in Cairo programs since FLTK 1.4.0
2021-12-18 22:44:08 +01:00
ManoloFLTK
4bc25f7f9d Fix for issue #278 - continued : add CMake OPTION_USE_KDIALOG
Use of the kdialog command by class Fl_Naive_File_Chooser can now be turned off
at build-time through CMake OPTION_USE_KDIALOG.

If building via configure + make, set #define USE_KDIALOG to 0 in config.h before make.
2021-12-08 09:41:06 +01:00
ManoloFLTK
84cf249482 Fix for issue #253: Remove xdbe support 2021-11-26 15:01:54 +01:00
ManoloFLTK
b027d2ba57 Windows platform: use GDI+ to antialias oblique lines and curves. 2021-05-31 08:28:06 +02:00
Albrecht Schlosser
a484541d4b CMake: improve detection and configuration of image libs
Also: fix old (pre 3.13) link_directories() usage
2021-04-30 19:47:47 +02:00
Albrecht Schlosser
49a78bc482 Fix cairo build (autoconf + CMake) + README's
- rewrite to use pkg-config with both autoconf + CMake
- remove hardcoded library names
- fix build dependencies and search directories
- remove or replace old and unused variables
- update README files

To be done:
- implement fallback for autoconf/configure if pkg-config is missing
- fix pango build (uses cairo internally)
2021-03-01 10:45:59 +01:00
ManoloFLTK
1adaa3def2 Create classes Fl_XXX_Gl_Window_Driver according to driver model. 2021-02-16 09:29:13 +01:00
ManoloFLTK
8accc6e840
Pango ps (#148)
Use cairo-PostScript to output PostScript when pango is available.

This allows to draw in vectorial form any script.
Before, only the Latin script could be drawn to PostScript in vectorial form.
2020-10-28 17:19:05 +01:00
ManoloFLTK
95799bd364 Fix for cmake + macOS + OPTION_APPLE_X11 regarding GLU-using apps. 2020-08-31 16:17:04 +02:00
ManoloFLTK
87b799ba07 make + macOS: further fix to the construction of fltk-config 2020-08-31 12:35:25 +02:00
ManoloFLTK
1f20806466 Remove VERSION_GREATER_EQUAL that requires a more recent CMake version than 3.2.3
Replace it by (NOT VERSION_LESS)
2020-08-27 17:49:10 +02:00
ManoloFLTK
9a799da70a Fix cmake-based build under macOS with OPTION_APPLE_X11.
cmake now correctly finds GLU support when present.
2020-08-26 22:01:09 +02:00
ManoloFLTK
1ace96e470 Fix for cmake-based construction of the fltk-config script under macOS.
This also supports OPTION_APPLE_X11 and OPTION_USE_PANGO.
2020-08-26 21:37:36 +02:00
Albrecht Schlosser
3b9a04ae2e CMake: add examples folder to build (optional)
- replace misnamed option 'OPTION_BUILD_EXAMPLES' with 'FLTK_BUILD_TEST'
- add option 'FLTK_BUILD_EXAMPLES' to build apps in examples folder
- move examples/fltk-versions.cxx to test/fltk-versions.cxx
- [Travis-CI] enable option 'FLTK_BUILD_EXAMPLES' for automatic builds
2020-08-21 18:55:12 +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
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
ManoloFLTK
26e6c3f930 Add classes Fl_SVG_File_Surface and Fl_EPS_File_Surface to draw to SVG and EPS.
Test programs device and pixmap_browser use these new classes.
Class Fl_SVG_File_Surface can be optionally made non functional using the
--disable-svg configure option or turning off OPTION_USE_SVG in CMake.
Class Fl_EPS_File_Surface can be optionally made non functional using the
--disable-print configure option or turning off OPTION_PRINT_SUPPORT in CMake.
2020-06-27 09:56:00 +02:00
Taeril
930013638b Quick fix for inability to link with pango from fltk-config
Commit 6fe226cb80 introduced use of
pkg-config which broke linking from fltk-config if FLTK was
configured to use pango library.

This patch duplicates line from another if branch that just adds
libraries assuming that if pkg-config found pangoxft that there
are present all it's requirements.
2020-06-21 14:29:18 +02:00
ManoloFLTK
6fe226cb80 CMake: use pkg_check_modules to search for pangoxft
Command pkg_check_modules is present in CMake 2.6
2020-04-15 17:07:23 +02:00
Albrecht Schlosser
2d2c2ff45e CMake: set option to build docs (default): ON
This option does not build the documentation automatically, docs
still must be built manually, e.g. 'make docs' or 'make html'.
2020-02-14 15:23:53 +01:00
ManoloFLTK
ed0c443253 Set OPTION_USE_SYSTEM_LIBPNG/JPEG off under macOS by default 2020-01-18 16:05:29 +01:00
ManoloFLTK
ae29e4d0e4 Remove temporary CMake option OPTION_HIDPI no longer used. 2020-01-18 09:14:51 +01:00
ManoloFLTK
9ff6ad7885 Continue CMake support of the Darwin+XQuartz+fink test platform 2019-10-31 07:30:39 +01:00
ManoloFLTK
8c6f1b8ece Restore CMake support of Darwin + XQuartz + fink 2019-10-30 18:57:47 +01:00
Matthias Melcher
e25511131b Android: modifying CMake to also create AndroidStudio IDE 2019-01-14 23:27:34 +01:00
Albrecht Schlosser
de199c327e Add a CMake option to generate driver (developer) documentation.
Generating driver documentation can now be configured with CMake. The new
configuration OPTION_INCLUDE_DRIVER_DOCUMENTATION is "marked as advanced"
since only advanced users and/or FLTK developers need this.

Previously this could only be achieved by editing documentation/Doxyfile.in.

Added missing documentation option descriptions as well.
2018-12-29 20:35:10 +01:00
fabien
65d90c33dc Removes few tabs from options.cmake. When removing tabs, also apply cmp standard (two spaces) recommended indentation. 2018-12-22 15:01:20 -06:00
fabien
9338385da7 remove unnecessary double braces in option.cmake cairo detection code 2018-12-22 10:35:52 -06:00
fabien
e3b289e008 CMake CAIRO support minor improvements: Make the conditional code more readeable by reusing the already parsed PKG_CAIRO_FOUND variable instead of testing for it again, which also simplifies the preconditions testing. Fix typo (. in endif statement comment). 2018-12-22 08:26:56 -06:00
Albrecht Schlosser
88129db051 Improve CMake's Cairo detection and issue error message...
... if Cairo was requested (OPTION_CAIRO or OPTION_CAIROEXT) but
Cairo was not found. CMake generation is terminated with a fatal error.

The user has two choices: install Cairo libs and headers or disable
OPTION_CAIRO and OPTION_CAIROEXT.
2018-12-20 19:12:50 +01:00
ManoloFLTK
75293c1725 macOS + CMake + OPTION_APPLE_X11 : restore building of GLU-based test apps. 2018-12-16 19:01:56 +01:00
Matthias Melcher
b1598dc703 Removed macro FL_PORTING, as it has been more confusing than helpful.
The original intention of FL_PORTING was to mark all places in the
source code where changes are required to port FLTK to a new platform.
Thanks to the driver system, this approach has become somewhat
misleading, so I removed all references.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12969 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-23 17:04:18 +00:00
Albrecht Schlosser
e0a15603dd CMake/fltk-config: update fltk-config (LDFLAGS) for MacOS.
This is a preliminary patch to enable linking with pango on MacOS
when fltk-config is used. A better solution is under development.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12759 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-16 14:12:05 +00:00