Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-02-21 07:45:47 +0300
committerCampbell Barton <ideasman42@gmail.com>2011-02-21 07:45:47 +0300
commit848d60caee5242f6aae1ec76eb220376133b34a8 (patch)
treeaaaeef19e5bed56eff8c434ccd00a46922c6f261
parent1e4c17a82fea339e42e9a88323735b9fe029820d (diff)
Move blender version info into BKE_blender.h so we only have the info in one place and so package building scripts can extract it in a more usable way.
this also means we can have a version string like '2.56a-beta' without using buildinfo. release/VERSION was only used by scons, NSIS installer. Possibly helps to fix bug [#26062] too.
-rw-r--r--build_files/scons/tools/btools.py53
-rw-r--r--release/VERSION1
-rw-r--r--source/blender/blenkernel/BKE_blender.h21
3 files changed, 57 insertions, 18 deletions
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py
index 6eb987db37b..b1b2494d522 100644
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@ -16,14 +16,50 @@ Variables = SCons.Variables
BoolVariable = SCons.Variables.BoolVariable
def get_version():
+ import re
+
fname = os.path.join(os.path.dirname(__file__), "..", "..", "..", "source", "blender", "blenkernel", "BKE_blender.h")
+ ver_base = None
+ ver_char = None
+ ver_cycle = None
+
+ re_ver = re.compile("^#\s*define\s+BLENDER_VERSION\s+([0-9]+)")
+ re_ver_char = re.compile("^#\s*define\s+BLENDER_VERSION_CHAR\s*(\S*)") # optional arg
+ re_ver_cycle = re.compile("^#\s*define\s+BLENDER_VERSION_CYCLE\s*(\S*)") # optional arg
+
for l in open(fname, "r"):
- if "BLENDER_VERSION" in l:
- ver = int(l.split()[-1])
- return "%d.%d" % (ver / 100, ver % 100)
+ match = re_ver.match(l)
+ if match:
+ ver = int(match.group(1))
+ ver_base = "%d.%d" % (ver / 100, ver % 100)
+
+ match = re_ver_char.match(l)
+ if match:
+ ver_char = match.group(1)
+ if ver_char == "BLENDER_CHAR_VERSION":
+ ver_char = ""
+
+ match = re_ver_cycle.match(l)
+ if match:
+ ver_cycle = match.group(1)
+ if ver_cycle == "BLENDER_CYCLE_VERSION":
+ ver_cycle = ""
+
+ if (ver_base is not None) and (ver_char is not None) and (ver_cycle is not None):
+ # eg '2.56a-beta'
+ if ver_cycle:
+ ver_display = "%s%s-%s" % (ver_base, ver_char, ver_cycle)
+ else:
+ ver_display = "%s%s" % (ver_base, ver_char) # assume release
+
+ return ver_base, ver_display
+
raise Exception("%s: missing version string" % fname)
-VERSION = get_version() # This is used in creating the local config directories
+
+# This is used in creating the local config directories
+VERSION, VERSION_DISPLAY = get_version()
+
def print_arguments(args, bc):
if len(args):
@@ -92,7 +128,7 @@ def validate_arguments(args, bc):
'WITH_BF_RAYOPTIMIZATION',
'BF_RAYOPTIMIZATION_SSE_FLAGS',
'BF_NO_ELBEEM',
- 'WITH_BF_CXX_GUARDEDALLOC'
+ 'WITH_BF_CXX_GUARDEDALLOC'
]
# Have options here that scons expects to be lists
@@ -502,11 +538,6 @@ def NSIS_Installer(target=None, source=None, env=None):
for f in df:
outfile = os.path.join(dp,f)
datafiles += ' File '+outfile + "\n"
-
- os.chdir("release")
- v = open("VERSION")
- version = v.read()[:-1]
- v.close()
#### change to suit install dir ####
inst_dir = install_base_dir + env['BF_INSTALLDIR']
@@ -520,7 +551,7 @@ def NSIS_Installer(target=None, source=None, env=None):
# var replacements
ns_cnt = string.replace(ns_cnt, "[DISTDIR]", os.path.normpath(inst_dir+os.sep))
- ns_cnt = string.replace(ns_cnt, "[VERSION]", version)
+ ns_cnt = string.replace(ns_cnt, "[VERSION]", VERSION_DISPLAY)
ns_cnt = string.replace(ns_cnt, "[SHORTVERSION]", VERSION)
ns_cnt = string.replace(ns_cnt, "[RELDIR]", os.path.normpath(rel_dir))
ns_cnt = string.replace(ns_cnt, "[BITNESS]", bitness)
diff --git a/release/VERSION b/release/VERSION
deleted file mode 100644
index 9a256b1d546..00000000000
--- a/release/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-2.56a-beta
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index aa04e20beb6..7c6d7d81f2b 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -40,6 +40,21 @@
extern "C" {
#endif
+/* these lines are grep'd, watch out for our not-so-awesome regex
+ * and keep comment above the defines.
+ * Use STRINGIFY() rather then defining with quotes */
+#define BLENDER_VERSION 256
+#define BLENDER_SUBVERSION 1
+
+#define BLENDER_MINVERSION 250
+#define BLENDER_MINSUBVERSION 0
+
+/* used by packaging tools */
+ /* can be left blank, otherwise a,b,c... etc with no quotes */
+#define BLENDER_VERSION_CHAR a
+ /* alpha/beta/rc/releases */
+#define BLENDER_VERSION_CYCLE beta
+
struct ListBase;
struct MemFile;
struct bContext;
@@ -47,12 +62,6 @@ struct ReportList;
struct Scene;
struct Main;
-#define BLENDER_VERSION 256
-#define BLENDER_SUBVERSION 1
-
-#define BLENDER_MINVERSION 250
-#define BLENDER_MINSUBVERSION 0
-
int BKE_read_file(struct bContext *C, const char *filepath, struct ReportList *reports);
#define BKE_READ_FILE_FAIL 0 /* no load */