mirror of
https://github.com/fltk/fltk.git
synced 2026-02-06 00:01:57 +08:00
- 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.
Backported from 'master' (1066b69c8e).
138 lines
6.3 KiB
YAML
138 lines
6.3 KiB
YAML
name: Build and Test
|
|
|
|
on: [push]
|
|
|
|
env:
|
|
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
|
|
BUILD_TYPE: Release
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
jobs:
|
|
build-linux:
|
|
# The CMake configure and build commands are platform agnostic and should work equally
|
|
# well on Windows or Mac. You can convert this to a matrix build if you need
|
|
# cross-platform coverage.
|
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: install prerequisites
|
|
run: sudo apt-get update -y && sudo apt-get install -y libasound2-dev libglew-dev libglu1-mesa-dev libx11-dev libxcursor-dev libxft-dev libxinerama-dev
|
|
|
|
- name: Create Build Environment
|
|
# Some projects don't allow in-source building, so create a separate build directory
|
|
# We'll use this as our working directory for all subsequent commands
|
|
run: cmake -E make_directory ${{github.workspace}}/build
|
|
|
|
- name: Configure CMake
|
|
# Use a bash shell so we can use the same syntax for environment variable
|
|
# access regardless of the host operating system
|
|
shell: bash
|
|
working-directory: ${{github.workspace}}/build
|
|
# Note the current convention is to use the -S and -B options here to specify source
|
|
# and build directories, but this is only available with CMake 3.13 and higher.
|
|
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
|
|
run: cmake $GITHUB_WORKSPACE -D CMAKE_BUILD_TYPE=$BUILD_TYPE -D FLTK_BACKEND_WAYLAND=OFF -D CMAKE_CXX_STANDARD=98 -D CMAKE_CXX_EXTENSIONS=OFF -D CMAKE_C_FLAGS_INIT="-Wall -Wunused" -D CMAKE_CXX_FLAGS_INIT="-Wall -Wunused"
|
|
|
|
- name: Build
|
|
working-directory: ${{github.workspace}}/build
|
|
shell: bash
|
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
|
run: cmake --build . --config $BUILD_TYPE
|
|
|
|
- name: Unittest
|
|
working-directory: ${{github.workspace}}/build
|
|
shell: bash
|
|
run: ./bin/test/unittests --core
|
|
|
|
|
|
build-wayland:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install prerequisites
|
|
run: sudo apt-get update -y && sudo apt-get install -y libasound2-dev libglu1-mesa-dev libwayland-dev wayland-protocols libdbus-1-dev libxkbcommon-dev libegl-dev libopengl-dev libpango1.0-dev libdecor-0-dev libxfixes-dev libxcursor-dev libxinerama-dev
|
|
|
|
- name: Create Build Environment
|
|
# Some projects don't allow in-source building, so create a separate build directory
|
|
# We'll use this as our working directory for all subsequent commands
|
|
run: cmake -E make_directory ${{github.workspace}}/build
|
|
|
|
- name: Configure CMake
|
|
# Use a bash shell so we can use the same syntax for environment variable
|
|
# access regardless of the host operating system
|
|
shell: bash
|
|
working-directory: ${{github.workspace}}/build
|
|
# Note the current convention is to use the -S and -B options here to specify source
|
|
# and build directories, but this is only available with CMake 3.13 and higher.
|
|
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
|
|
run: cmake $GITHUB_WORKSPACE -D CMAKE_BUILD_TYPE=$BUILD_TYPE -D CMAKE_CXX_STANDARD=11 -D CMAKE_CXX_EXTENSIONS=OFF -D CMAKE_C_FLAGS_INIT="-Wall -Wunused" -D CMAKE_CXX_FLAGS_INIT="-Wall -Wunused -Wsuggest-override"
|
|
|
|
- name: Build
|
|
working-directory: ${{github.workspace}}/build
|
|
shell: bash
|
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
|
run: cmake --build . --config $BUILD_TYPE
|
|
|
|
build-macos:
|
|
# The CMake configure and build commands are platform agnostic and should work equally
|
|
# well on Windows or Mac. You can convert this to a matrix build if you need
|
|
# cross-platform coverage.
|
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
|
runs-on: macos-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Create Build Environment
|
|
# Some projects don't allow in-source building, so create a separate build directory
|
|
# We'll use this as our working directory for all subsequent commands
|
|
run: cmake -E make_directory ${{github.workspace}}/build
|
|
|
|
- name: Configure CMake
|
|
# Use a bash shell so we can use the same syntax for environment variable
|
|
# access regardless of the host operating system
|
|
shell: bash
|
|
working-directory: ${{github.workspace}}/build
|
|
# Note the current convention is to use the -S and -B options here to specify source
|
|
# and build directories, but this is only available with CMake 3.13 and higher.
|
|
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
|
|
run: cmake $GITHUB_WORKSPACE -D CMAKE_BUILD_TYPE=$BUILD_TYPE -D FLTK_BUILD_SHARED_LIBS=ON -D CMAKE_CXX_STANDARD=11 -D CMAKE_CXX_EXTENSIONS=OFF -D CMAKE_C_FLAGS_INIT="-Wall -Wunused" -D CMAKE_CXX_FLAGS_INIT="-Wall -Wunused -Wsuggest-override"
|
|
|
|
- name: Build
|
|
working-directory: ${{github.workspace}}/build
|
|
shell: bash
|
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
|
run: cmake --build . --config $BUILD_TYPE
|
|
|
|
build-windows:
|
|
# This build config has been minimized. Please see other configs for further advice.
|
|
# We don't use the "bash" shell (defaults to PowerShell) and avoid using environment
|
|
# variables as far as possible and useful.
|
|
#
|
|
# Note:
|
|
# We *must* disable system image libs to make sure we don't find incompatible ones on
|
|
# GitHub Actions runners "windows-latest" (since Nov. 22, 2022, version: 20221120.1).
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Create Build Environment
|
|
run: cmake -E make_directory ${{github.workspace}}/build
|
|
|
|
- name: Configure CMake
|
|
working-directory: ${{github.workspace}}/build
|
|
run: cmake -D FLTK_USE_SYSTEM_LIBJPEG:BOOL=OFF -D FLTK_USE_SYSTEM_LIBPNG:BOOL=OFF -D FLTK_USE_SYSTEM_ZLIB:BOOL=OFF -DFLTK_BUILD_SHARED_LIBS:BOOL=ON ..
|
|
|
|
- name: Build
|
|
working-directory: ${{github.workspace}}/build
|
|
run: cmake --build . --config Release
|