#!/usr/bin/env python3
import os
import subprocess
import sys
import shutil
GIT_VERSION_H = sys.argv[
1]
MESON_SOURCE_ROOT = os.environ.get(
'MESON_SOURCE_ROOT', sys.argv[
2])
MESON_BUILD_ROOT = os.environ.get(
'MESON_BUILD_ROOT', sys.argv[
3])
# `meson dist` doesn't trigger a build, which is a problem because we
# need to add some configured/built files. The case where we didn't
# build at all is the less annoying (we'd get a failure, which is
# actually acceptable as it warns us). But the case where we would copy
# outdated data is much more insidious (such as wrong INSTALL
# information or wrong git information) as it would be silent.
# See: https://github.com/mesonbuild/meson/issues/10650
# And: https://gitlab.gnome.org/GNOME/gimp/-/issues/7907
# This is why we manually trigger, not only a reconfigure, but also a
# rebuild of the main project before copying data around.
try:
# INSTALL file is generated at configure time.
subprocess.run([
'meson',
'--reconfigure', MESON_SOURCE_ROOT], check=
True)
# git-version.h is generated at build time.
subprocess.run([
'meson',
'compile'], check=
True)
shutil.copy2(
'INSTALL', os.environ[
'MESON_DIST_ROOT'])
install_in = os.path.join(os.environ[
'MESON_DIST_ROOT'],
'INSTALL.in')
if os.path.exists(install_in):
os.remove(install_in)
shutil.copy2(GIT_VERSION_H, os.environ[
'MESON_DIST_ROOT'])
except subprocess.CalledProcessError
as e:
sys.exit(e.returncode)
except Exception:
sys.exit(
1)
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-11-03)
¤
*© Formatika GbR, Deutschland