diff --git a/common/meson.build b/common/meson.build new file mode 100644 index 0000000000..4bca5ea435 --- /dev/null +++ b/common/meson.build @@ -0,0 +1,8 @@ +version_h = vcs_tag( + command: ['git', 'describe', '--always', '--tags', '--dirty'], + input: 'version.h.in', + output: 'version.h', + replace_string: '@VERSION@', +) + +sources += version_h diff --git a/common/version.h.in b/common/version.h.in new file mode 100644 index 0000000000..7d1c92f1bb --- /dev/null +++ b/common/version.h.in @@ -0,0 +1,3 @@ +#define VERSION "@VERSION@" +#define BUILDDATE __DATE__ " " __TIME__ +#define MPVCOPYRIGHT "Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects" diff --git a/meson.build b/meson.build index be26cbd633..c49ee8f739 100644 --- a/meson.build +++ b/meson.build @@ -556,7 +556,6 @@ tools_directory = join_paths(source_root, 'TOOLS') docutils_wrapper = find_program(join_paths(tools_directory, 'docutils-wrapper.py')) file2string = find_program(join_paths(tools_directory, 'file2string.py')) matroska = find_program(join_paths(tools_directory, 'matroska.py')) -version_py = find_program(join_paths(source_root, 'version.py')) ebml_defs = custom_target('ebml_defs.inc', output: 'ebml_defs.inc', @@ -568,13 +567,9 @@ ebml_types = custom_target('ebml_types.h', command: [matroska, '--generate-header', '@OUTPUT@'], ) -version_h = custom_target('version.h', - output: 'version.h', - command: [version_py, '@OUTPUT@'], - build_always_stale: true, -) -sources += [ebml_defs, ebml_types, version_h] +sources += [ebml_defs, ebml_types] +subdir('common') subdir('etc') subdir('player') subdir('sub') diff --git a/version.py b/version.py deleted file mode 100755 index 18f13e3cbe..0000000000 --- a/version.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 - -import os -import sys -import time - -from datetime import datetime,timezone -from shutil import which -from subprocess import check_output - -srcdir = os.path.dirname(os.path.abspath(sys.argv[0])) -git_dir = os.path.join(srcdir, ".git") -git = which('git') - -if git and os.path.exists(git_dir): - version = check_output([git, "-C", srcdir, "describe", "--always", "--tags", - "--dirty"], encoding="UTF-8") - version = version[1:].strip() -else: - version_path = os.path.join(srcdir, "VERSION") - with open(version_path, "r") as f: - version = f.readline().strip() - -if len(sys.argv) < 2: - print(version) - sys.exit() - -ts = float(os.environ.get('SOURCE_DATE_EPOCH', time.time())) -date = datetime.fromtimestamp(ts, timezone.utc) - -OLD_REVISION = "" -NEW_REVISION = f'#define VERSION "{version}"' -BUILDDATE = f'#define BUILDDATE "{date.ctime()}"' -MPVCOPYRIGHT = f'#define MPVCOPYRIGHT "Copyright © 2000-2023 mpv/MPlayer/mplayer2 projects"' - -if os.path.isfile(sys.argv[1]): - with open(sys.argv[1], "r") as f: - OLD_REVISION = f.readline().strip() - -if NEW_REVISION != OLD_REVISION or NEW_REVISION.endswith('dirty"'): - with open(sys.argv[1], "w", encoding="utf-8") as f: - f.writelines(f"{l}{os.linesep}" for l in [NEW_REVISION, BUILDDATE, MPVCOPYRIGHT])