Commit Graph

25 Commits

Author SHA1 Message Date
Albrecht Schlosser
d623ad08a9 Fix Cairo build and add FLTK_OPTION_CAIRO_WINDOW to CI build
Some checks failed
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
... on GitHub (GitLab CI builds used it already)
2025-11-17 13:53:24 +01:00
Albrecht Schlosser
bcf51371d2 Simplify CMake build config for test and demo programs
Define platform specific library names as CMake variables so they can
be used to build demo programs w/o platform specific instructions.

This includes optional components (e.g. OpenGL) and the MSVC specific
extra object library (call_main) and the fact that we build only one
"monolithic" shared library with MSVC.

Also, enable building FLTK Forms library in CI builds.
2025-05-08 21:34:13 +02:00
Albrecht Schlosser
1066b69c8e Fix "fully support ... own shared libraries" (#1238)
- If shared libraries are built, then fluid, fltk-options, and the
  "games" are linked against the shared FLTK libraries. On some
  platforms the static and the shared versions of fluid and
  fltk-options are built. The games are only built if
  FLTK_BUILD_TEST is enabled.

- The CMake 'install' target now installs the games (if built)
  and their man pages on all platforms (no matter if that is
  useful, for instance on Windows).

- On macOS 'CMAKE_INSTALL_RPATH' is set so *installed* programs
  automatically find their shared FLTK libraries. The "shared"
  versions of fluid and fltk-options got their own '.plist' files.
  This works for both the executables themselves as well as those
  included in bundles. There may be more to do on the macOS platform.
2025-04-21 19:50:12 +02:00
Albrecht Schlosser
b252e5e45c Remove libfltk_cairo (fltk::cairo)
Some checks are pending
Build and Test / build-linux (push) Waiting to run
Build and Test / build-wayland (push) Waiting to run
Build and Test / build-macos (push) Waiting to run
Build and Test / build-windows (push) Waiting to run
This library is no longer needed and was "empty" for backwards
compatibility since FLTK 1.4.0.
2025-03-16 00:10:53 +01:00
ManoloFLTK
1054e81504 CI for Wayland: replace libgtk-3-dev by libdecor-0-dev libxfixes-dev libxcursor-dev libxinerama-dev 2025-03-11 23:47:39 +01:00
Albrecht Schlosser
13b88d4335 CMake/CI: Switch CXX standard to C++11 for all builds
Note: current minimum for future 1.5.0 is C++11, this may be raised
  after further discussion.
2025-03-06 18:20:05 +01:00
Albrecht Schlosser
030c3fa5bc Update "GitHub Actions" Linux runner to 'ubuntu-latest'
Some checks are pending
Build and Test / build-linux (push) Waiting to run
Build and Test / build-wayland (push) Waiting to run
Build and Test / build-macos (push) Waiting to run
Build and Test / build-windows (push) Waiting to run
Note: ubuntu-20.04 will be phased out soon
2025-02-19 18:34:12 +01:00
Albrecht Schlosser
1a4ec05b2b Update GitHub workflow: actions/checkout
update from 'actions/checkout@v2' to 'actions/checkout@v4'
2024-10-18 14:39:28 +02:00
Albrecht Schlosser
d2bd3c6240 CMake/MSVC: Fix shared library build, add to GitHub CI build
Fault was a simple typo or copy-paste error
2024-04-20 01:44:26 +02:00
Matthias Melcher
fd791a068e Separate FLUID user documentation, screen shot automation (#936)
* CMake integration, no autotiools
* alignment panel is now correctly renamed to setting panel
* source view is now correctly renamed to code view
* Merge FLTK FLUID docs into FLUID user manual.
* Add two simple entry tutorials
* Remove FLUID chapter form FLTK docs.
* GitHub action to generate HTML and PDF docs and
  make the available as artefacts
2024-04-17 17:51:32 +02:00
Albrecht Schlosser
a1d3bf182e Fix GitHub CI build and minor CMake issues
- GitHub CI: fix wrong CMake option name
- fl_add_library: disable debug output (MSVC), fix formatting
2024-02-07 20:03:29 +01:00
Albrecht Schlosser
fd5cd80935 Introduce "Modern CMake" in FLTK
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-02-07 18:37:34 +01:00
Matthias Melcher
9f87af8ad9 Fl_String refactoring and extension (#683)
- add true unittest and Fl_String testing
- interface and printout are similar to gtest
  without requiring external linkage.
  just run `unittest --core`.
- new Fl_String API
- extended API to fl_input_str and fl_password_str
- co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2023-02-23 15:42:05 +01:00
Albrecht Schlosser
5e133c1e88 CI: Enable compiler warnings in CI builds (#648)
'-Wall -Wunused -Wsuggest-override'
depending on the C++ standard, either
- C++98 (Linux/X11)
- C++11 (Linux/Wayland)
- C++20 (macOS)
2023-01-10 16:31:49 +01:00
Alex
30dd944c74 build: harden build.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-12-08 19:39:06 +01:00
Albrecht Schlosser
c1a7c4af04 Fix GitHub Actions (CI) for Windows builds
This was necessary because the latest GitHub "runner" image (20221120.1)
includes incompatible image libs (libjpeg, libpng, and zlib). This
caused `fluid-cmd.exe` to fail with error code -1073741511. For further
information please refer to this GitHub Issue:
  https://github.com/actions/runner-images/issues/6627

The previous runner version (20221027.1) did not include these libs
and our build used the internal libs and worked.

The fix is to disable the search for system libs in CMake.

Note: this does not explain *why* these libs are incompatible.
2022-11-25 17:24:18 +01:00
ManoloFLTK
3dac8e379e CI build-Wayland: package libpangocairo-1.0-0 is installed by default 2022-11-25 12:45:47 +01:00
ManoloFLTK
0ba051994a Have OPTION_USE_WAYLAND / --enable-wayland set to ON by default 2022-11-23 06:17:31 +01:00
Albrecht Schlosser
bb6072ad82 Improve wording of GitHub Issue Templates
as suggested by Manolo and Ian
2022-09-30 18:01:04 +02:00
Albrecht Schlosser
283184a09a Add GitHub Issue Templates
- bug_report.md: template for bug reports
- feature_request.md: template for feature requests
- fltk-build-or-usage-question.md: not really a template [1]

[1] Explain to users that this is the wrong place to ask user
    questions and refer them to fltk.general
2022-09-28 17:18:03 +02:00
Albrecht Schlosser
e91d65cd2f Fix whitespace errors (no code changes) 2022-03-31 16:00:11 +02:00
ManoloFLTK
d4e21963b5 Add build-wayland step to continuous integration. 2022-03-04 15:55:49 +01:00
Albrecht Schlosser
23c54e7a4b GitHub Actions (Linux): add 'apt-get update'
Error was:

E: Failed to fetch http://azure.archive.ubuntu.com/ubuntu/pool/main/m/mesa/libegl-mesa0_21.0.3-0ubuntu0.2~20.04.1_amd64.deb  404  Not Found [IP: 52.147.219.192 80]
E: Failed to fetch http://azure.archive.ubuntu.com/ubuntu/pool/main/m/mesa/libgl1-mesa-dev_21.0.3-0ubuntu0.2~20.04.1_amd64.deb  404  Not Found [IP: 52.147.219.192 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Error: Process completed with exit code 100.
2021-08-27 13:49:01 +02:00
Michael R Sweet
5378ef1c87 Update GHA build scripts for Linux, macOS, and Windows. 2021-02-14 15:14:39 -05:00
Michael R Sweet
f47465c736 Initial Github Action for CI builds 2021-02-14 15:05:17 -05:00