summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
AgeCommit message (Collapse)Author
2024-06-01libdecor: update to upstream commit c2bd8ad6 (31-may-2024)ManoloFLTK
2024-04-22 Fix: Fl_Native_File_Chooser::filter_value() [Kdialog] always returns 0 (#899)ManoloFLTK
- remove build option FLTK_USE_KDIALOG replaced by an Fl::option() option - new run-time option OPTION_FNFC_USES_KDIALOG - make options OPTION_FNFC_USES_KDIALOG and OPTION_FNFC_USES_ZENITY false by default - add mention of new program fltk-options in the doc of Fl::option() - change logic of choice of the native file chooser under X11/Wayland: the zenity and kdialog choosers are opt-in; otherwise the GTK file chooser is used, unless opted out with OPTION_FNFC_USES_GTK - document that zenity may be interesting for sandboxed apps - document that both zenity and kdialog make member functions Fl_Native_File_Chooser::filter_value() inoperable
2024-04-21Fix build of test programs using shared FLTK libsAlbrecht Schlosser
2024-04-21CMake: add target_include_directories() for optional libs (#954)Albrecht Schlosser
This ensures that header files for libraries found by `pkg-config` (pkg_check_modules) in non-system directories will be found by the compiler during the compilation of the FLTK library. This issue has been reported in PR #954 related to builds with Conan where some header files are not in system locations.
2024-04-20Add "fl_" prefix to libdecor symbols when using the built-in copy of libdecorManoloFLTK
This allows client apps to use other versions of libdecor if they wish, just like what FLTK already does with libpng and libjpeg.
2024-04-20CMake/MSVC: Fix shared library build, add to GitHub CI buildAlbrecht Schlosser
Fault was a simple typo or copy-paste error
2024-04-19CMake: fix propagation of CMake targets to user projects (#954)Albrecht Schlosser
Unfortunately commit 5417ea5f1f33f62e2511bda74477da05dce900a3 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.
2024-04-18Restore IMPORTED_TARGET in pkg_check_modules command for libdecorManoloFLTK
2024-04-18Allow libdecor package version ≥ 0.2.0 with FLTK_USE_SYSTEM_LIBDECORManoloFLTK
2024-04-14Fix and improve generation of fltk-config (#954 and more)Albrecht Schlosser
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.
2024-04-14CMake: Use imported targets for PkgConfig packages (#954)Jordan Williams
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.
2024-04-12CMake: Improve detection of the GLU library and GL/glu.h header file (#953)Jordan Williams
* 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.
2024-03-21CMake: Remove "-no-pie" build optionAlbrecht Schlosser
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)
2024-03-18Move nanosvg to a separate file, don't use 'roundf()' (#937)Albrecht Schlosser
Replacement of roundf() with nsvg__roundf() fixes one aspect of issue #937. Having the nanosvg implementation in its own module was planned anyway.
2024-03-18Restore building on old Linux/Unix systems lacking Xutf8LookupString()ManoloFLTK
2024-03-13Remove useless X11 libraries when building with -DFLTK_BACKEND_X11=0ManoloFLTK
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.
2024-01-06Remove Fl_Simple_Terminal (replaced by Fl_Terminal)Albrecht Schlosser
... as discussed previously.
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-05Wayland: much lighter but partial implementation of the "GTK Shell" protocolManoloFLTK
Only the middle-button click gesture is implemented which avoids interference with what libdecor does with right-click and double-click.
2023-12-05Wayland+CMake: use set_source_files_properties() for libdecor - cont'dManoloFLTK
2023-12-05Wayland+CMake: use set_source_files_properties() for libdecorManoloFLTK
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-30Wayland: use GTK Shell also with system libdecorManoloFLTK
2023-11-29Add commandline conversion for Windows (no-op on other platforms)Albrecht Schlosser
- add Fl::args_to_utf8() to convert commandline arguments to UTF-8 This new function closes the gap that previously only Visual Studio applications converted their commandlines to UTF-8. Tested with MinGW, MSYS2/MinGW-w64, and Visual Studio (2019).
2023-11-19Windows/MSVC: Fix wide char commandline handling (#840)Albrecht Schlosser
Windows programs (subsystem:windows, not Windows console programs) compiled with Visual Studio need a WinMain entry point. The commandline arguments handled by this function are now properly converted to UTF-8 before the standard main() entry point is called. This applies only to Visual Studio! Note that some build systems like MinGW and/or MSYS2 may still have issues with some Unicode (non-ASCII) commandline arguments.
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-11-14Fl_Terminal widget (#800)erco77
Pull Fl_Terminal widget from Greg's fork
2023-11-12Have libdecor-gtk implement the "GTK Shell" protocolManoloFLTK
2023-10-16Add Fl_Grid widget and test and demo programsAlbrecht Schlosser
- FL/Fl_Grid.H: header file - src/Fl_Grid.cxx: implementation - examples/grid-simple.cxx: simple example program - test/cube.cxx: use Fl_Grid for layout - test/grid_alignment.cxx: test cell alignment and other functions - test/grid_buttons.cxx: demo program as discussed in fltk.general - test/grid_login.cxx: like test/flex_login.cxx but with Fl_Grid - test/flex_login.cxx: modified to match test/grid_login.cxx
2023-09-12Fix Visual Studio shared library buildAlbrecht Schlosser
Todo: fluid-shared can't (yet) be built agains the shared fltk lib because of some linker errors. Needs investigation. Note: fluid-shared is basically a test program to demonstrate linking against the shared FLTK libs but doesn't work yet using VS (MSVC). This is no problem for the functionality.
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-07-09Update CMakeLists.txtMohammed Alyousef
2023-04-30Allow building Wayland platform without dbus - cont'd (#726)ManoloFLTK
CMake-based building without dbus is made possible
2023-04-10Fix CMake generation for minimal CMake version (3.2.3)Albrecht Schlosser
Unfortunately `execute_process(COMMAND pkg-config ...)` used for CMake versions lower than 3.4 appends a trailing newline ('\n') to the output variable which must be removed. Replace double slash '//' returned by pkg-config with a single '/' for consistency (applies to all CMake versions). Tested with CMake 3.2.3 but we should probably raise the minimal CMake version to a more recent version in the future.
2023-03-29Improve detection of the location of Wayland protocol files across OSesManoloFLTK
2023-03-22CMake: check for presence of needed Wayland protocol source filesManoloFLTK
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-15Move class Fl_Shortcut_Button from FLUID to core (#677) (#680)Matthias Melcher
2023-02-14Rename class Fl_Display_Cairo_Graphics_Driver to Fl_X11_Cairo_Graphics_DriverManoloFLTK
2023-01-21Animated GIF support (Fl_Anim_GIF_Image class) (#375)wcout
2023-01-12Add Fl_Scheme_Choice widget and use it in test programsAlbrecht Schlosser
This widget offers the selection of all known FLTK schemes as a simple widget based on Fl_Choice. Some test and demo programs use Fl_Scheme_Choice to enable the developer or user to switch schemes quickly for comparison. Todo: - add features to add new schemes during runtime (partially done) - update status when the scheme is changed by Fl::scheme("...")
2023-01-12Add the initial version of class Fl_SchemeAlbrecht Schlosser
This basic version of class Fl_Scheme contains only static methods that are needed for Fl_Scheme_Choice and further extensions.
2022-12-28Improve and extend fl_contrast() (#370)Albrecht Schlosser
- Add internal fl_contrast_cielab() as the new default. - Keep old function as internal fl_contrast_legacy(). - Add fl_contrast_mode() to switch between fl_contrast() functions. - Add fl_contrast_level() to fine tune fl_contrast() per mode. - Add option to register and use a custom contrast function. - Add test/contrast.cxx test program. - Move all fl_contrast() related code to a new file src/fl_contrast.cxx. - Add fl_lightness() convenience function for perceived lightness. - Add fl_luminance() convenience function for physical luminance.
2022-12-18Fix "link errors connected with recent Zenity dialog feature" (#602)ManoloFLTK
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-09New Fl_ICO_Image class to read Windows .ico icon filesManoloFLTK
Many thanks to @darealshinji for contributing all the code for this new FLTK image class (see branch Fl_ICO_Image of https://github.com/darealshinji/fltk).
2022-11-30Remove small files fl_XXX_gl_platform_init.cxxManoloFLTK
The single-function content of these files is moved to Fl_XXX_Gl_Window_Driver.cxx.
2022-11-25Add "Oxy" scheme (STR 2675, STR 3477)Albrecht Schlosser
This commit is similar to the patch given in STR 3477, oxy_v5.diff: https://www.fltk.org/strfiles/3477/oxy_v5.diff ... with modifications, and updated to current FLTK code.