summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
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
2014-01-03Fixed missing libdl dependency in CMake builds (STR #2977).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10042 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-09-11STR 2636. Add ability to get notifications whenever thePierre Ossman
clipboard changes. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9974 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-05-22Removed autoconf/configure and CMake tests and defines forAlbrecht Schlosser
unused function strtoll() [resolves one part of STR #2965]. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9923 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-09-13Fixed CMake use for Mac OS and the scandir() function.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9679 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-11-12fix STR #2764yuri
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9171 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-07-19Modifications to all LGPL headers for STR #2685.Greg Ercolano
(to clarify static exception LGPL by changing license references) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8864 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-06Fix STR #2504 (first part). Replaced HAVE _CAIRO by FLTK_HAVE_CAIRO and ↵Manolo Gouy
USE_CAIRO by FLTK_USE_CAIRO everywhere. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8198 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-03Mac OS X: removed all uses of Carbon (except for older OS versions) and ↵Manolo Gouy
re-organized text input around the NSTextInput protocol. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8173 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-29Mac OS X: removed dependency from AudioToolbox.framework by calling NSBeep() ↵Manolo Gouy
from Cocoa. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8135 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-30Updated CMake files with patches from Michael Surette (STR #2317).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7919 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-17Fixed cmake under Mac OS XManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7867 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-06One more CMake fix.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7461 ea41ed52-d2ee-0310-a9c1-e6b18d33e121