mirror of
https://github.com/odrling/Aegisub
synced 2025-04-11 22:56:02 +02:00
meson: create git_version.h in configuration step
This commit is contained in:
parent
1b46d5b36e
commit
160fc30e86
6
git_version.h.in
Normal file
6
git_version.h.in
Normal file
@ -0,0 +1,6 @@
|
||||
#define BUILD_GIT_VERSION_NUMBER @git_version_number@
|
||||
#define BUILD_GIT_VERSION_STRING @git_version_string@
|
||||
#define RELEASE_VERSION @release_version@
|
||||
#define TAGGED_RELEASE 0
|
||||
#define INSTALLER_VERSION "0.0.0"
|
||||
#define RESOURCE_BASE_VERSION 0, 0, 0
|
55
meson.build
55
meson.build
@ -2,7 +2,7 @@ project('Aegisub', ['c', 'cpp'],
|
||||
license: 'BSD-3-Clause',
|
||||
meson_version: '>=0.56.1',
|
||||
default_options: ['cpp_std=c++11', 'b_lto=true', 'buildtype=debugoptimized'],
|
||||
version: '3.2.2')
|
||||
version: '3.3.3')
|
||||
|
||||
cmake = import('cmake')
|
||||
|
||||
@ -20,17 +20,48 @@ if host_machine.system() == 'windows'
|
||||
endif
|
||||
endif
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
version_sh = find_program('tools/version.ps1')
|
||||
else
|
||||
version_sh = find_program('tools/version.sh')
|
||||
endif
|
||||
version_inc = include_directories('.')
|
||||
version_h = custom_target('git_version.h',
|
||||
command: [version_sh, meson.current_build_dir(), meson.current_source_dir()],
|
||||
build_by_default: true,
|
||||
build_always_stale: true, # has internal check whether target file will be refreshed
|
||||
output: ['git_version.h'])
|
||||
|
||||
conf_data = configuration_data()
|
||||
|
||||
git_describe = run_command('git', 'describe')
|
||||
|
||||
if git_describe.returncode() == 0
|
||||
last_svn_hash = '16cd907fe7482cb54a7374cd28b8501f138116be'
|
||||
svn_revision = 6962
|
||||
git_count = run_command('git', 'rev-list', '--count', last_svn_hash + '..HEAD')
|
||||
git_release = run_command('git', 'describe', '--exact-match')
|
||||
|
||||
git_describe_str = git_describe.stdout().strip().substring(1)
|
||||
git_version_number = svn_revision + git_count.stdout().strip().to_int()
|
||||
|
||||
if git_release.returncode() == 0
|
||||
git_version_string = git_describe_str
|
||||
else
|
||||
branch_cmd = run_command('git', 'symbolic-ref', 'HEAD')
|
||||
branch = branch_cmd.stdout().strip().substring(11)
|
||||
git_hash_cmd = run_command('git', 'rev-parse', '--short', 'HEAD')
|
||||
git_hash = git_hash_cmd.stdout().strip()
|
||||
|
||||
git_version_template = '@0@-@1@-@2@'
|
||||
git_version_string = git_version_template.format(git_version_number,
|
||||
branch,
|
||||
git_hash)
|
||||
endif
|
||||
else
|
||||
warning('git describe failed. Using default version number (' + meson.project_version() + ')')
|
||||
git_version_number = 42
|
||||
git_describe_str = meson.project_version()
|
||||
git_version_string = meson.project_version()
|
||||
endif
|
||||
|
||||
conf_data.set('git_version_number', git_version_number)
|
||||
conf_data.set_quoted('release_version', git_describe_str)
|
||||
conf_data.set_quoted('git_version_string', git_version_string)
|
||||
|
||||
configure_file(input: 'git_version.h.in',
|
||||
output: 'git_version.h',
|
||||
configuration: conf_data)
|
||||
|
||||
if host_machine.system() == 'darwin' and get_option('build_osx_bundle')
|
||||
prefix = meson.current_build_dir() / 'Aegisub.app' / 'Contents'
|
||||
@ -280,7 +311,7 @@ if not deps.contains(luajit)
|
||||
luajit_inc = luajit_sp.get_variable('incdir')
|
||||
deps += luajit_sp.get_variable('luajit_dep')
|
||||
else
|
||||
luajit_inc = include_directories(luajit.get_pkgconfig_variable('includedir'))
|
||||
luajit_inc = include_directories(luajit.get_variable(pkgconfig: 'includedir'))
|
||||
endif
|
||||
subdir('subprojects/luabins/src')
|
||||
|
||||
|
@ -249,7 +249,7 @@ endforeach
|
||||
aegisub_cpp_pch = ['include/agi_pre.h']
|
||||
aegisub_c_pch = ['include/agi_pre_c.h']
|
||||
|
||||
aegisub = executable('aegisub', aegisub_src, version_h, acconf,
|
||||
aegisub = executable('aegisub', aegisub_src, acconf,
|
||||
link_with: [libresrc, libluabins, libaegisub],
|
||||
include_directories: [libaegisub_inc, libresrc_inc, version_inc, deps_inc],
|
||||
cpp_pch: aegisub_cpp_pch,
|
||||
|
Loading…
x
Reference in New Issue
Block a user