Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build: Support Meson #996

Merged
merged 4 commits into from
Oct 20, 2024
Merged

Build: Support Meson #996

merged 4 commits into from
Oct 20, 2024

Commits on Oct 17, 2024

  1. Give all files an EOF newline for consistency

    Signed-off-by: Matt Jolly <[email protected]>
    Kangie committed Oct 17, 2024
    Configuration menu
    Copy the full SHA
    943600d View commit details
    Browse the repository at this point in the history
  2. IWYU fixes

    - `sys/select.h` for `fd_set`
    - FvwmConsole: `libs/defaults` for `FVWMCONSOLE_CONNECTION_TO_SECS`
    - `limits.h` for INT_MAX
    - `time.h` for `time()`; `difftime()`
    - `libs/log.h` for `fvwm_debug`
    
    Signed-off-by: Matt Jolly <[email protected]>
    Kangie committed Oct 17, 2024
    Configuration menu
    Copy the full SHA
    326d3e3 View commit details
    Browse the repository at this point in the history
  3. Pre-meson image handling cleanup

    - png: Wrap `png_get_color_type` for Fpng
    - svg: Fix build with SVG disabled
    
    Prior to this commit builds without PNG or SVG could not be run
    successfully under Meson.
    
    Co-authored-by: Thomas Adam <[email protected]>
    Signed-off-by: Matt Jolly <[email protected]>
    Kangie and ThomasAdam committed Oct 17, 2024
    Configuration menu
    Copy the full SHA
    cb8247a View commit details
    Browse the repository at this point in the history
  4. Implement Meson

    The intent of this commit is to provide a working
    meson build that implementation that is as close
    to the existing autotools build as is reasonable.
    
    Autotools should be considered deprecated; followup
    commits that modernise the codebase (e.g `time.h` vs
    `sys/time.h`) may include changes to autotools, and
    bugs will be fixed, however no enhancements to the
    autotools build will be made.
    
    Porting notes:
    
    FwvmPrompt: We use a script that calls 'find' to generate
    a list of sources to feed to golang in a custom target as
    there is not currently direct support for golang in Meson.
    
    bin/: Configured scripts are manually set to 'rwxr-xr-x'.
    
    drop -Wno-implicit-int:
    
    Modern compilers complain about this for a reason;
    we should not mask this.
    
    I can't find any current occurrances in the codebase
    and this will catch any future instances before they
    are merged.
    
    po:
    
    - Set GETTEXT_PACKAGE (mandatory for i18n module)
    - Add POTFILES to define files which need to be scanned
      for strings to translate
    
    See:
    
    - https://mesonbuild.com/Localisation.html
    - https://mesonbuild.com/i18n-module.html#i18n-module
    
    PRIVATE_COLORSET: always assume this is true
    
    For years, we've been setting FVWM_COLORSET_PRIVATE=1, so there
    is no need for the include guards.
    
    ci:
    
    We now include a Meson build that uses Clang + lld as
    the build system to catch bugs and warnings that our
    traditional autotools + GCC builds might miss.
    
    We no longer build a docker image, instead we directly
    execute the fvwm3-build container as a GitHub Action.
    GH Actions have been factored out into a common set, and are
    used as a matrix set to apply to Ubuntu (glibc) and Alpine (musl).
    
    The Go version in fvwm3-build has been updated to enable use
    with meson and eliminate the need for a complex envvar setup
    and invocation, however older golang is still supported (>=1.14);
    we're just relying on users to tell us if something is broken.
    
    While the issue with LTO builds has been resolved in this PR, it was
    incidental and the introduced changes will catch LTO errors before
    they make it into a release.
    
    Closes: fvwmorg#1056
    Co-authored-by: Thomas Adam <[email protected]>
    Signed-off-by: Matt Jolly <[email protected]>
    Kangie and ThomasAdam committed Oct 17, 2024
    Configuration menu
    Copy the full SHA
    ef1ba83 View commit details
    Browse the repository at this point in the history