mirror of https://github.com/GNOME/gimp.git
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
#!/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)
|