summaryrefslogtreecommitdiff
path: root/CMake
AgeCommit message (Collapse)Author
2024-02-10CMake: fix some weird internal dependencies (Wayland/X11)Albrecht Schlosser
Improve recognition of Wayland and X11 specific build options and remove duplicates from required dependencies (FLTK_LDLIBS) used in fltk-config. This should also fix the GitLab CI build process. To do: the logic to find the dependencies of Wayland and X11 is currently suboptimal. This will be improved in a later commit.
2024-02-10Modern CMake: export shared libraries and fltk-optionsAlbrecht Schlosser
2024-02-09Fix Cairo related build issues (missing Cairo lib)Albrecht Schlosser
... particularly for shared libs
2024-02-08CMake cleanup: fix alignmentAlbrecht Schlosser
2024-02-08CMake cleanup: mark two more cache variables "advanced"Albrecht Schlosser
2024-02-07Fix GitHub CI build and minor CMake issuesAlbrecht Schlosser
- GitHub CI: fix wrong CMake option name - fl_add_library: disable debug output (MSVC), fix formatting
2024-02-07Introduce "Modern CMake" in FLTKAlbrecht Schlosser
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.
2023-12-21Ensure that exporting 'fl_disable_wayland' worksAlbrecht Schlosser
... with cmake_minimum_required(VERSION 3.4) or higher. This version sets CMP0065 to 'NEW' which by default inhibits exporting global symbols from executable programs. For details see CMake policy CMP0065 and README.Wayland.txt.
2023-12-20Make the 'Forms' compatibility library 'fltk_forms' optionalAlbrecht Schlosser
This library is no longer needed in FLTK itself. There is only one demo program (test/forms.cxx) that uses it if it is built. The demo program displays a message if fltk_forms is not available. The default is 'enabled' for backwards compatibility but this may be changed to 'disabled' in a future version.
2023-12-12CMake: remove deprecated 'exec_program' from target 'uninstall'Albrecht Schlosser
1. 'exec_program()' should be replaced with 'execute_process()'. Done. 2. 'cmake -E remove' is broken and deprecated since 3.17, hence we use 'cmake -E rm' (!) for CMake since 3.17 and 'cmake -E remove' only for older CMake versions.
2023-12-05Wayland+CMake: use set_source_files_properties() for libdecorManoloFLTK
2023-12-04Minor updates of bundled libraries and README.CMake.txtAlbrecht Schlosser
Update Makefiles, CMakeLists.txt, improve formatting.
2023-12-03CMake: Remove UseFLTK.cmake generation and usageAlbrecht Schlosser
2023-12-02Wayland: make OPTION_USE_SYSTEM_LIBDECOR ON by defaultManoloFLTK
This commit makes the default FLTK build setting use libdecor as packaged in Linux when the build system contains packages libdecor-0-dev and libdecor-0-plugin-1-gtk in version ≥ 0.2.0. Otherwise, FLTK uses the bundled version of libdecor. This includes situations where package libdecor-0-dev is present in an earlier version.
2023-11-25CMake/Windows/MSVC: Add option to select MSVC RuntimeAlbrecht Schlosser
Selects MSVC compiler/build options known as /MT, /MTd, /MD, or /MDd. This applies to "Visual Studio" (IDE) and "NMake Makefiles" builds.
2023-11-25CMake/Windows/MSVC: add DLL path as target propertyAlbrecht Schlosser
This modifies the debug environment so demo programs linked to FLTK DLL's can be debugged w/o copying FLTK DLL's to the build folders of the demo programs. This is work in progress and may be improved in a future commit but it works as it is now for all demo programs.
2023-11-15CMake: Raise cmake_minimum_required from 3.12 to 3.15Albrecht Schlosser
Remove code that checks CMake versions lower than 3.15
2023-10-22Make Fl_String and Fl_Int_Vector private (#789)Albrecht Schlosser
- add CMake option 'OPTION_USE_STD' - add configure option '--enable-use_std' - move FL/Fl_String.H to src/Fl_String.H - move FL/Fl_Int_Vector.H to src/Fl_Int_Vector.H - remove Fl_String from demo program examples/callbacks.cxx - remove Fl_Int_Vector from public header FL/Fl_Table.H - some methods of Fl_Table are no longer inline - add CMake option OPTION_USE_STD to allow std::string in some selected functions and methods Experimental, may be removed before release: - use either Fl_Int_Vector or std::vector in Fl_Table depending on CMake OPTION_USE_STD or configure --enable-use_std Move all fl_filename* functions that use Fl_String to fluid Main changes in fluid: - add fluid_filename.h and .cxx - include "fluid_filename.h" rather than <FL/filename.H> Update fl_input(), fl_password() and test/ask - add maxchar parameter to fl_input() and fl_password() - fl_input_str() and fl_password_str() are optional and return std::string if enabled (FLTK_USE_STD)
2023-08-28CMake: Make compile definitions 'FL_LIBRARY' and 'FL_DLL' privateAlbrecht Schlosser
... so they are not inherited by consumers of the library. Remove 'add_definitions(-DFL_LIBRARY)' from src/CMakeLists.txt This is not necessary, see CMake/fl_add_library.cmake Don't set obsolete property 'CLEAN_DIRECT_OUTPUT' which was removed in CMake 2.8.0.
2023-08-26CMake: fix formatting, add more debug outputAlbrecht Schlosser
2023-04-30Allow building Wayland platform without dbus - cont'd (#726)ManoloFLTK
CMake-based building without dbus is made possible
2023-04-02Fix "recipe for target '../../src/xdg-decoration-protocol.c' failed" (#704)ManoloFLTK
2023-03-09CMake: build shared libs with OPTION_CAIROEXT (issue #250)Albrecht Schlosser
- 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-02-28Fix fltk-config --use-images with local image libs (#689)Albrecht Schlosser
CMake only: replace wrong variable names with correct ones. Affected were all image libraries (jpeg, png) and zlib. These variables had been renamed in an earlier commit when lots of CMake code had been rewritten.
2023-02-06Remove usage of __APPLE_QUARTZ__ (#673)ManoloFLTK
2023-02-02Fix position() methods that shadow Fl_Widget::position()Matthias Melcher
* `FL_DEPRECATED` macro to mark `position()` method that shadow `Fl_Widget::position()` #69 (#666)
2023-02-02Allow cmake -DOPTION_APPLE_X11=On without -U__APPLE__ManoloFLTK
2023-01-21Move global FLTK options into new app fltk-admin (#560)Matthias Melcher
2023-01-01Make sure that zlib and png are both local or system (#621)Matthias Melcher
Autoconf syncs png and zlib configuration Cmake png zlib selection
2022-12-16Derive Fl_Zenity_Native_File_Chooser_Driver from Fl_Kdialog_Native_…ManoloFLTK
Also add Fl::option(OPTION_FNFC_USES_ZENITY)
2022-12-16Add Zenity-based file chooser based on the KDialog one (HugLifeTiZ)Trent McPheron
If available, it is used on Linux regardless of the current desktop because it offers free XDG portal integration, which means it picks the correct file chooser on all desktops, and allows for meaningful file selection in sandbox environments like Flatpak.
2022-12-13 Fix for "Build on FreeBSD fails: linux/input.h not found" (#584)ManoloFLTK
2022-11-24CMake build for Wayland: check for presence of required GL-related softwareManoloFLTK
2022-11-24CMake building: improve messages about necessary software packagesManoloFLTK
2022-11-23CMake build for Wayland/X11 hybrid: check for libx???-dev packagesManoloFLTK
2022-11-23Fix whitespace (trailing spaces)Albrecht Schlosser
2022-11-23Have OPTION_USE_WAYLAND / --enable-wayland set to ON by defaultManoloFLTK
2022-11-23Wayland+CMake: stop forcing GTK_FOUND to 0ManoloFLTK
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-18CMake+Wayland: check for presence of required software modulesManoloFLTK
Also, remove hardcoded path to wayland-protocols when CMake version ≥ 3.4
2022-11-13Make building Fluid optional. (#539)Matthias Melcher
2022-11-11CMake: improve debug macrosAlbrecht Schlosser
2022-11-08Wayland + CMake: fix generated fltk-config that lacked -lX11ManoloFLTK
2022-10-16macOS + homebrew: restore building with CMake's OPTION_APPLE_X11ManoloFLTK
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-09-09New OPTION_WAYLAND_ONLY for CMake to build pure Wayland platform.ManoloFLTK
2022-08-29Make hybrid Wayland/X11 platform.ManoloFLTK
2022-05-21Wayland under FreeBSD: detect <GL/glu.h> and fix LIBDECOR_PLUGIN_DIR.ManoloFLTK
2022-04-07Reorder CMake build options for better order of include directoriesAlbrecht Schlosser
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-05CMake: Restore removed HAVE_LIBPNG settingAlbrecht Schlosser
This was removed unintentionally.
2022-04-04Remove obsolete config variable 'HAVE_LIBPNG_PNG_H'Albrecht Schlosser
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-03Build and use fluid-cmd on Windows for .fl files (#224, #293)Albrecht Schlosser
On Windows fluid.exe is a "GUI" program and does not allow console output which can be a problem in automated builds. In Visual Studio the fluid GUI program would pop up console windows when generating .cxx and .h files from .fl files. The new (additional) fluid-cmd.exe is built as console application for users that need it and it is used in the FLTK build process on Windows to convert the .fl files.