summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2024-04-07 13:58:13 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2024-04-07 13:58:13 -0700
commitb297a7738a02b3fb7a8842e054c4068195038c38 (patch)
tree846903789c9dff94110bd724c3e98025dc56ec5e /.gitlab-ci.yml
parent2b5316265c5ce6c7dbd8f726826d5d5a7385febd (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.yml62
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)