summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xversion.sh14
-rw-r--r--waftools/generators/headers.py26
-rw-r--r--wscript7
3 files changed, 17 insertions, 30 deletions
diff --git a/version.sh b/version.sh
index 3eac7ef050..a3d753da44 100755
--- a/version.sh
+++ b/version.sh
@@ -2,16 +2,22 @@
export LC_ALL=C
+version_h="version.h"
+
for ac_option do
+ ac_arg=$(echo $ac_option | cut -d '=' -f 2-)
case "$ac_option" in
--extra=*)
- extra="-$option"
+ extra="-$ac_arg"
+ ;;
+ --versionh=*)
+ version_h="$ac_arg"
;;
--print)
print=yes
;;
*)
- echo "Unknown parameter: $option" >&2
+ echo "Unknown parameter: $ac_option" >&2
exit 1
;;
@@ -42,12 +48,12 @@ if test "$print" = yes ; then
fi
NEW_REVISION="#define VERSION \"${VERSION}\""
-OLD_REVISION=$(head -n 1 version.h 2> /dev/null)
+OLD_REVISION=$(head -n 1 "$version_h" 2> /dev/null)
BUILDDATE="#define BUILDDATE \"$(date)\""
# Update version.h only on revision changes to avoid spurious rebuilds
if test "$NEW_REVISION" != "$OLD_REVISION"; then
- cat <<EOF > version.h
+ cat <<EOF > "$version_h"
$NEW_REVISION
$BUILDDATE
EOF
diff --git a/waftools/generators/headers.py b/waftools/generators/headers.py
index 546dd0344d..dbedcc0865 100644
--- a/waftools/generators/headers.py
+++ b/waftools/generators/headers.py
@@ -4,37 +4,12 @@ def __cp_to_variant__(ctx, variant, basename):
node.parent.mkdir()
node.write(src)
-def __get_version__(ctx):
- import subprocess
- process = subprocess.Popen(["sh", "./version.sh", "--print"],
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- cwd=ctx.srcnode.abspath())
- (version, err) = process.communicate()
- version = version.strip()
- if not isinstance(version, str):
- version = version.decode('utf-8')
- return version
-
-def __get_build_date__():
- import time
- return time.strftime("%Y-%m-%dT%H:%M:%S", time.gmtime())
-
def __write_config_h__(ctx):
ctx.start_msg("Writing configuration header:")
ctx.write_config_header('config.h')
__cp_to_variant__(ctx, ctx.options.variant, 'config.h')
ctx.end_msg("config.h", "PINK")
-def __write_version_h__(ctx):
- ctx.start_msg("Writing header:")
- ctx.env.VERSION = __get_version__(ctx)
- ctx.define("VERSION", ctx.env.VERSION)
- ctx.define("BUILDDATE", __get_build_date__())
- ctx.write_config_header("version.h")
- __cp_to_variant__(ctx, ctx.options.variant, 'version.h')
- ctx.end_msg("version.h", "PINK")
-
# Approximately escape the string as C string literal
def __escape_c_string(s):
return s.replace("\"", "\\\"").replace("\n", "\\n")
@@ -58,4 +33,3 @@ def __add_mpv_defines__(ctx):
def configure(ctx):
__add_mpv_defines__(ctx)
__write_config_h__(ctx)
- __write_version_h__(ctx)
diff --git a/wscript b/wscript
index a5566d782f..68c06fb627 100644
--- a/wscript
+++ b/wscript
@@ -911,6 +911,12 @@ def configure(ctx):
ctx.store_dependencies_lists()
+def __write_version__(ctx):
+ import subprocess
+ subprocess.call(["sh", "./version.sh",
+ "--versionh=" + ctx.bldnode.abspath() + "/version.h"],
+ cwd=ctx.srcnode.abspath())
+
def build(ctx):
if ctx.options.variant not in ctx.all_envs:
from waflib import Errors
@@ -918,6 +924,7 @@ def build(ctx):
'The project was not configured: run "waf --variant={0} configure" first!'
.format(ctx.options.variant))
ctx.unpack_dependencies_lists()
+ __write_version__(ctx)
ctx.load('wscript_build')
def init(ctx):