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

ta/meson review #1060

Closed
wants to merge 8 commits into from
Closed

ta/meson review #1060

wants to merge 8 commits into from

Conversation

ThomasAdam
Copy link
Member

  • Give all files an EOF newline for consistency
  • WIP: meson support
  • meson.build: Complete implementation
  • Add missing libs/log.h include for fvwm_debug
  • modules/FvwmConsole: add missing libs/defaults include for FVWMCONSOLE_CONNECTION_TO_SECS
  • libs: include sys/select.h for fd_set
  • PRIVATE_COLORSET: always assume this is true
  • XOUTPUT_METHOD: default to true
  • CI: Update for meson build
  • dev-docs: update build system info
  • CI/CD: Add LTO options to GCC build
  • meson: Remove automagic dependencies
  • IWYU: limits.h for INT_MAX
  • IWYU: time.h for time()
  • meson: check for and define HAVE_SYS_STAT_H
  • docs: update
  • Github Actions: WIP

@ThomasAdam ThomasAdam added this to the 1.1.1 milestone Sep 14, 2024
@ThomasAdam ThomasAdam self-assigned this Sep 14, 2024
@ThomasAdam ThomasAdam marked this pull request as draft September 14, 2024 08:10
@ThomasAdam ThomasAdam force-pushed the ta/meson-review branch 6 times, most recently from 720269d to da6bff9 Compare September 15, 2024 13:05
@ThomasAdam ThomasAdam force-pushed the ta/meson-review branch 3 times, most recently from 70e0818 to 07342bc Compare October 2, 2024 16:30
Kangie and others added 7 commits October 4, 2024 11:28
Signed-off-by: Matt Jolly <kangie@gentoo.org>
- `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 <kangie@gentoo.org>
- 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 <thomas@fvwm.org>
Signed-off-by: Matt Jolly <kangie@gentoo.org>
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.

Co-authored-by: Thomas Adam <thomas@fvwm.org>
Signed-off-by: Matt Jolly <kangie@gentoo.org>
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: #1056
Co-authored-by: Thomas Adam <thomas@fvwm.org>
Signed-off-by: Matt Jolly <Kangie@gentoo.org>
Discuss new Meson build path and how to build things.

Co-authored-by: Thomas Adam <thomas@fvwm.org>
Signed-off-by: Matt Jolly <Kangie@gentoo.org>
Move some of the build-system scripts into a top-level meson-scripts
directly, and add a script (meson-scripts/dist-tarball.sh) to clean up
the dist tarball before it's created.
Centralise custom meson-scripts to the toplevel meson-scripts/
directory.
@ThomasAdam ThomasAdam added skip:changelog Issue/PR should skip CHANGELOG area:build Relates to compiling/buildsystem of fvwm labels Oct 21, 2024
@ThomasAdam ThomasAdam removed this from the 1.1.1 milestone Oct 21, 2024
@ThomasAdam ThomasAdam closed this Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:build Relates to compiling/buildsystem of fvwm skip:changelog Issue/PR should skip CHANGELOG
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants