diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-10-26 14:13:10 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-10-26 14:13:10 +0000 |
commit | 8f53fc64599a8b7b4cc21af5dfa90bdbf8eb28f2 (patch) | |
tree | 52762b3cbf6e43315c0ff39c80651dbab6486db8 /SConstruct | |
parent | ca1adc28737af5e24b43b1c00d560a318f1d1574 (diff) |
new version derivation system, improvements to splash screen display
git-svn-id: svn://localhost/ardour2/trunk@1022 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 95 |
1 files changed, 67 insertions, 28 deletions
diff --git a/SConstruct b/SConstruct index b7031ff80e..40b52d8db2 100644 --- a/SConstruct +++ b/SConstruct @@ -9,6 +9,7 @@ import errno import time import platform import string +import commands from sets import Set import SCons.Node.FS @@ -236,35 +237,73 @@ def i18n (buildenv, sources, installenv): # note: requires that DOMAIN, MAJOR, MINOR, MICRO are set in the construction environment # note: assumes one source files, the header that declares the version variables # +#def version_builder (target, source, env): +# text = "int " + env['DOMAIN'] + "_major_version = " + str (env['MAJOR']) + ";\n" +# text += "int " + env['DOMAIN'] + "_minor_version = " + str (env['MINOR']) + ";\n" +# text += "int " + env['DOMAIN'] + "_micro_version = " + str (env['MICRO']) + ";\n" +# +# try: +# o = file (target[0].get_path(), 'w') +# o.write (text) +# o.close () +# except IOError: +# print "Could not open", target[0].get_path(), " for writing\n" +# sys.exit (-1) +# +# text = "#ifndef __" + env['DOMAIN'] + "_version_h__\n" +# text += "#define __" + env['DOMAIN'] + "_version_h__\n" +# text += "extern int " + env['DOMAIN'] + "_major_version;\n" +# text += "extern int " + env['DOMAIN'] + "_minor_version;\n" +# text += "extern int " + env['DOMAIN'] + "_micro_version;\n" +# text += "#endif /* __" + env['DOMAIN'] + "_version_h__ */\n" +# +# try: +# o = file (target[1].get_path(), 'w') +# o.write (text) +# o.close (); +# except IOError: +# print "Could not open", target[1].get_path(), " for writing\n" +# sys.exit (-1) +# +# return None + def version_builder (target, source, env): - text = "int " + env['DOMAIN'] + "_major_version = " + str (env['MAJOR']) + ";\n" - text += "int " + env['DOMAIN'] + "_minor_version = " + str (env['MINOR']) + ";\n" - text += "int " + env['DOMAIN'] + "_micro_version = " + str (env['MICRO']) + ";\n" - - try: - o = file (target[0].get_path(), 'w') - o.write (text) - o.close () - except IOError: - print "Could not open", target[0].get_path(), " for writing\n" - sys.exit (-1) - - text = "#ifndef __" + env['DOMAIN'] + "_version_h__\n" - text += "#define __" + env['DOMAIN'] + "_version_h__\n" - text += "extern int " + env['DOMAIN'] + "_major_version;\n" - text += "extern int " + env['DOMAIN'] + "_minor_version;\n" - text += "extern int " + env['DOMAIN'] + "_micro_version;\n" - text += "#endif /* __" + env['DOMAIN'] + "_version_h__ */\n" - - try: - o = file (target[1].get_path(), 'w') - o.write (text) - o.close (); - except IOError: - print "Could not open", target[1].get_path(), " for writing\n" - sys.exit (-1) - - return None + cmd = "svn info " + cmd += source[0].get_path() + cmd += " | awk '/^Revision:/ { print $2}'" + + rev = commands.getoutput (cmd) + + text = "const char* " + env['DOMAIN'] + "_revision = \"" + rev + "\";\n" + text += "int " + env['DOMAIN'] + "_major_version = " + str (env['MAJOR']) + ";\n" + text += "int " + env['DOMAIN'] + "_minor_version = " + str (env['MINOR']) + ";\n" + text += "int " + env['DOMAIN'] + "_micro_version = " + str (env['MICRO']) + ";\n" + + try: + o = file (target[0].get_path(), 'w') + o.write (text) + o.close () + except IOError: + print "Could not open", target[0].get_path(), " for writing\n" + sys.exit (-1) + + text = "#ifndef __" + env['DOMAIN'] + "_version_h__\n" + text += "#define __" + env['DOMAIN'] + "_version_h__\n" + text += "extern const char* " + env['DOMAIN'] + "_revision;\n" + text += "extern int " + env['DOMAIN'] + "_major_version;\n" + text += "extern int " + env['DOMAIN'] + "_minor_version;\n" + text += "extern int " + env['DOMAIN'] + "_micro_version;\n" + text += "#endif /* __" + env['DOMAIN'] + "_version_h__ */\n" + + try: + o = file (target[1].get_path(), 'w') + o.write (text) + o.close (); + except IOError: + print "Could not open", target[1].get_path(), " for writing\n" + sys.exit (-1) + + return None version_bld = Builder (action = version_builder) env.Append (BUILDERS = {'VersionBuild' : version_bld}) |