summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2024-04-20CMake build summary: output libdecor location if foundAlbrecht Schlosser
Wayland only: output either the libdecor location or "Bundled".
2024-04-19CMake: add installation prefix to Configuration SummaryAlbrecht Schlosser
2024-04-08Improve CMake build configuration summaryAlbrecht Schlosser
- 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
2024-03-13CMake-based build under Linux shows whether X11 is usedManoloFLTK
2024-02-12CMake: set FLTK_VERSION and FLTK_FLUID_EXECUTABLE in the cacheAlbrecht Schlosser
This is useful if FLTK is built as a subproject, for instance by using FetchContent.
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-01CMake: add missing configuration output statementAlbrecht Schlosser
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-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-17Output build configuration in CMake report (#838)Albrecht Schlosser
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-26Update 'cmake_minimum_required' version to 3.12.0Albrecht Schlosser
Linking against OBJECT libraries as done in fluid since May 2023 and in shared library builds using MSVC even much earlier requires at least CMake 3.12. This commit adds the requirement explicitly to abort the build early.
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-01-21Move global FLTK options into new app fltk-admin (#560)Matthias Melcher
2022-11-18CMake: fix informative messages sent under macOSManoloFLTK
2022-11-13Make building Fluid optional. (#539)Matthias Melcher
2022-08-29Make hybrid Wayland/X11 platform.ManoloFLTK
2022-03-13CMake: Improve configuration summary, add fl_debug_pkg macroAlbrecht Schlosser
fl_debug_pkg(...) can be used to display CMake variables set by executing pkg_check_modules(). This is for CMake debugging only. The CMake configuration summary displays configuration options of Wayland, Pango, Xft, and Cairo configuration.
2022-02-01CMake: Fix image libraries build if fallback is usedAlbrecht Schlosser
The CMake instructions would use the wrong image libs (png, jpeg, zlib) if the fallback was active (OPTION_USE_SYSTEM_XXX) was true but the header files were not present. This had already been fixed for jpeg but not for the other two libs. This commit rearranges the logic for all three libs. Add information about builtin or system libraries to config summary.
2022-01-23Remove experimental platforms Android, Pico, SDL (PR #376)Albrecht Schlosser
... as discussed in fltk.coredev: "FLTK 1.4.0 release schedule" https://groups.google.com/g/fltkcoredev/c/PDbHTRpXVh0/m/JqboexZ_AwAJ
2021-12-18Generate FL/fl_config.h rather than FL/abi-version.hAlbrecht Schlosser
... 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-11-11CMake: Build fluid when cross-compilingAlbrecht Schlosser
2021-07-26Add CMake compatibility functions and macrosAlbrecht Schlosser
CMake/compatibility.cmake: define functions and macros to be used if a particular CMake functionality requires a higher CMake version than FLTK's minimum CMake version, see 'cmake_minimum_required(...)' in the root CMakeLists.txt. Note: target_link_directories() is available since CMake 3.13
2021-07-12macOS: fix fltk_cairo shared library (issue #250)Albrecht Schlosser
- add missing dependencies to build the shared libfltk_cairo(.dylib) - remove incorrect dependency on cairo from libfltk - add cairo_test-shared demo (linked with shared libs)
2021-04-30Enhance CMake build configuration summaryAlbrecht Schlosser
2021-03-01Fix CMake warning related to CMP0072Albrecht Schlosser
2021-02-15Update CMake and make files, minor edits onlyAlbrecht Schlosser
There are no functional changes to be expected, mostly formatting and comments.
2020-09-18Avoid CMake developer warning related to OpenGL/CMP0072Albrecht Schlosser
Newer CMake versions warn if CMake policy CMP0072 is not set. We're using "legacy mode" since we use FindOpenGL with `OPENGL_LIBRARIES` and not (yet) the `OpenGL::GL` target. See https://cmake.org/cmake/help/latest/policy/CMP0072.html
2020-08-21CMake: add feature and configuration summaryAlbrecht Schlosser
2020-08-21CMake: add examples folder to build (optional)Albrecht Schlosser
- 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-07-15CMake: refactor and reformat CMake filesAlbrecht Schlosser
- 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-06Remove $Id$ tags, update URL's, and moreAlbrecht Schlosser
- 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.
2019-01-16Android CMake: fix, more autogenerated filesMatthias Melcher
Fixed a bug that would cause an error is Android Build was NOT defined. Creating list of test targets automatically.
2019-01-15Android: starting to use CMake to build AndroidStudio files.Matthias Melcher
2019-01-14Android: modifying CMake to also create AndroidStudio IDEMatthias Melcher
2018-03-02More Android changes.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12699 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-09CMake: add macro fl_debug_var to debug variables.Albrecht Schlosser
Some debug messages are included, but currently disabled. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12658 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-10CMake: enable building FLTK in a subdirectory of another project.Albrecht Schlosser
Basically replace CMAKE_XXX_DIR with CMAKE_CURRENT_XXX_DIR where XXX = SOURCE or BINARY. Patch proposal by cleanrock, FLTK PR #4: https://github.com/fltk/test-only/pull/4 Patch modified to fix target dirs for test programs and doxygen docs. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12630 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-29CMake: replace improperly used variables with correct ones.Albrecht Schlosser
CMake variables FLTK_SOURCE_DIR and FLTK_BINARY_DIR are only defined if the project name is exactly "FLTK" (all uppercase). These variables are generated (set) by CMake as <PROJECT_NAME>_SOURCE_DIR etc. The correct variables are CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR, respectively, which are always defined. This commit enables future changes of the FLTK project name, e.g. to "fltk" or "fltk-1.4.0" (a versioned project name), if we like... git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12281 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-22Update minimum required CMake version from 2.6 to 2.6.3.Albrecht Schlosser
Verified build with CMake 2.6.3 (failed with 2.6.2). We need 2.6.3 for "unset" (unknown command in 2.6.2 and earlier). CMake 2.6.2 also fails when parsing nested brackets in logical expressions like the following one: if((NOT APPLE OR OPTION_APPLE_X11) AND NOT WIN32) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11397 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-07-12Make FL_ABI_VERSION configurable (STR #3161).Albrecht Schlosser
This commit adds the configure option --with-abiversion and the CMake option OPTION_ABI_VERSION. Both options can be set e.g. to 10304 to build with FL_ABI_VERSION = 10304 (FLTK 1.3.4). For IDE builds there are new files ide/<IDE-NAME>/FL/abi-version.h that can be edited to change the ABI version before the FLTK lib is built. Note that this file MUST be copied to the include/FL directory if the IDE-built library is to be installed. The default is FL_ABI_VERSION = FL_MAJOR*10000 + FL_MINOR*100 + 0, i.e. 10300 for all FLTK 1.3.x versions to keep binary compatibility (ABI). Todo: more tests and more documentation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10786 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-04-25[CMake] Fix CMake build's fltk-config (STR #3217).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10716 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-16[CMake] Improve installation, support DESTDIR, and more (STR #3149).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10580 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-10-09CMake: Prevent annoying warning under Cygwin.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10368 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-27CMake enhancements, as discussed in STR #3055.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10342 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-02-09Split CMake files for better maintenance, as discussed in fltk.general.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10098 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-02-02CMake/MinGW: Fix missing -pthread linker option for MinGW build.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10092 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-02-02CMake: Fix linker issues on OS X and Arch Linux (STR #3045).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10091 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-01-10Add CMake fixes for OS X build from Rob McDonald.Albrecht Schlosser
See thread: [fltk.general] Embedding FLTK in project. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10050 ea41ed52-d2ee-0310-a9c1-e6b18d33e121