meson: add support for building versionlib

This commit is contained in:
PeakKS 2024-10-05 21:53:27 -04:00
parent 557121ce4e
commit a6de4efe6e
4 changed files with 94 additions and 0 deletions

6
meson.build Normal file
View File

@ -0,0 +1,6 @@
project('metamod', 'c', 'cpp')
public_inc = include_directories('public')
subdir('versionlib')

26
meson_options.txt Normal file
View File

@ -0,0 +1,26 @@
option('sdks', type: 'array', choices: [
'csgo',
'hl2dm',
'nucleardawn',
'l4d2',
'dods',
'l4d',
'css',
'tf2',
'insurgency',
'sdk2013',
'dota',
'doi',
'orangebox',
'blade',
'episode1',
'bms',
'pvkii',
'mcv',
'darkm',
'swarm',
'bgt',
'eye',
'contagion',
'cs2',
])

46
versionlib/meson.build Normal file
View File

@ -0,0 +1,46 @@
fs = import('fs')
metamod_version_string = fs.read('../product.version').strip()
version_tag = metamod_version_string.split('-')
version = version_tag[0].split('.')
major = version[0]
minor = version[1]
release = version[2]
tag = version_tag[1]
revision = run_command('git', 'rev-list', '--count', 'HEAD', check: true).stdout().strip()
shorthash = run_command('git', 'log', '--pretty=format:%h', '-n', '1', check: true).stdout().strip()
product = '.'.join(major, minor, release)
if tag != ''
product += '-' + tag
if tag == 'dev'
product += '+' + revision
endif
endif
metamod_version_config = configuration_data({
'tag': tag,
'shorthash': shorthash,
'major': major,
'minor': minor,
'release': release,
'product': product,
'revision': revision,
})
configure_file(
input: 'metamod_version_auto.h.in',
output: 'metamod_version_auto.h',
configuration: metamod_version_config
)
versionlib = static_library(
'version',
'versionlib.cpp',
include_directories: [
public_inc,
]
)

View File

@ -0,0 +1,16 @@
#ifndef _METAMOD_AUTO_VERSION_INFORMATION_H_
#define _METAMOD_AUTO_VERSION_INFORMATION_H_
#define MMS_BUILD_TAG "@tag@"
#define MMS_BUILD_CSET "@shorthash@"
#define MMS_BUILD_MAJOR "@major@"
#define MMS_BUILD_MINOR "@minor@"
#define MMS_BUILD_RELEASE "@release@"
#define MMS_BUILD_LOCAL_REV "@revision@"
#define MMS_BUILD_UNIQUEID "@revision@:" MMS_BUILD_CSET
#define MMS_VERSION_STRING "@product@"
#define MMS_VERSION_FILE @major@,@minor@,@release@,0
#endif /* _METAMOD_AUTO_VERSION_INFORMATION_H_ */