diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2024-04-07 13:58:13 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2024-04-07 13:58:13 -0700 |
commit | b297a7738a02b3fb7a8842e054c4068195038c38 (patch) | |
tree | 846903789c9dff94110bd724c3e98025dc56ec5e /.gitlab-ci.yml | |
parent | 2b5316265c5ce6c7dbd8f726826d5d5a7385febd (diff) |
meson: Add a meson build system
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/app/appres/-/merge_requests/4>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 62 |
1 files changed, 59 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 558b234..53867d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,8 +30,9 @@ variables: # The tag should be updated each time the list of packages is updated. # Changing a tag forces the associated image to be rebuilt. # Note: the tag has no meaning, we use a date format purely for readability - FDO_DISTRIBUTION_TAG: '2021-12-03.0' - FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake make xorg-util-macros xorgproto libx11 libxt' + FDO_DISTRIBUTION_TAG: '2023-04-07.0' + # jq is only needed for meson-vs-autoconf version check + FDO_DISTRIBUTION_PACKAGES: 'git meson ninja gcc pkgconf jq autoconf automake make xorg-util-macros xorgproto libx11 libxt' # @@ -83,7 +84,19 @@ container-prep: # # The default build, runs on the image built above. # -build: + +meson: + extends: + - .fdo.distribution-image@arch + stage: build + script: + - mkdir -p ../_inst + - meson setup builddir --prefix="$PWD/../_inst" $MESON_OPTIONS + - meson configure builddir + - ninja -C builddir test + - ninja -C builddir install + +autotools: stage: build extends: - .fdo.distribution-image@arch @@ -96,3 +109,46 @@ build: - make check - make distcheck - popd > /dev/null + +# +# Unlike the xproto version this was copied from, this just compares +# the ls output to make sure the same files were installed, since +# comparing file contents lists mismatches with the ELF binaries and +# in the generated pkg-config files that are not issues here. +# +compare meson and autotools: + extends: + - .fdo.distribution-image@arch + stage: test + script: + - mkdir -p $PWD/_meson_inst + - mkdir -p $PWD/_autotools_inst + # Use a symlink to have the same --prefix for meson and autotools + - ln -sf $PWD/_meson_inst $PWD/_inst + - meson builddir + - meson configure builddir --prefix=$PWD/_inst + - ninja -C builddir install + - ls -R _inst > _meson_inst.ls + - rm $PWD/_inst + - ln -sf $PWD/_autotools_inst $PWD/_inst + - autoreconf -ivf + - ./configure --prefix=$PWD/_inst + - make && make install + - rm -f $PWD/_inst/lib/lib*.la + - ls -R _inst > _autotools_inst.ls + - diff -u $PWD/_meson_inst.ls $PWD/_autotools_inst.ls + - diff -u $PWD/_{autotools,meson}_inst/share/man + +check versions are in sync: + extends: + - .fdo.distribution-image@arch + stage: test + script: + - autoreconf -ivf + - ./configure --version | head -n 1 | sed -e 's/appres configure //' > autotools.version + - | + meson builddir + pushd builddir + meson introspect --projectinfo | jq -r '.version' > ../meson.version + popd + - diff -u autotools.version meson.version || (echo "ERROR - autotools and meson versions not in sync" && false) |