Prechádzať zdrojové kódy

Include Git hash in the engine

Poommetee Ketson 8 rokov pred
rodič
commit
5a9eb5ef58
3 zmenil súbory, kde vykonal 23 pridanie a 1 odobranie
  1. 4 0
      core/engine.cpp
  2. 5 1
      editor/project_manager.cpp
  3. 14 0
      methods.py

+ 4 - 0
core/engine.cpp

@@ -30,6 +30,7 @@
 #include "engine.h"
 
 #include "version.h"
+#include "version_hash.gen.h"
 
 void Engine::set_iterations_per_second(int p_ips) {
 
@@ -87,6 +88,9 @@ Dictionary Engine::get_version_info() const {
 	dict["revision"] = _MKSTR(VERSION_REVISION);
 	dict["year"] = VERSION_YEAR;
 
+	String hash = String(VERSION_HASH);
+	dict["hash"] = hash.length() == 0 ? String("unknown") : hash;
+
 	String stringver = String(dict["major"]) + "." + String(dict["minor"]);
 	if ((int)dict["patch"] != 0)
 		stringver += "." + String(dict["patch"]);

+ 5 - 1
editor/project_manager.cpp

@@ -49,6 +49,7 @@
 #include "scene/gui/texture_rect.h"
 #include "scene/gui/tool_button.h"
 #include "version.h"
+#include "version_hash.gen.h"
 
 class NewProjectDialog : public ConfirmationDialog {
 
@@ -1244,7 +1245,10 @@ ProjectManager::ProjectManager() {
 	top_hb->add_child(ccl);
 	top_hb->add_spacer();
 	l = memnew(Label);
-	l->set_text("v" VERSION_MKSTRING);
+	String hash = String(VERSION_HASH);
+	if (hash.length() != 0)
+		hash = "." + hash.left(7);
+	l->set_text("v" VERSION_MKSTRING "" + hash);
 	//l->add_font_override("font",get_font("bold","Fonts"));
 	l->set_align(Label::ALIGN_CENTER);
 	top_hb->add_child(l);

+ 14 - 0
methods.py

@@ -1176,6 +1176,20 @@ def update_version():
     f.write("#define VERSION_STATUS " + str(version.status) + "\n")
     import datetime
     f.write("#define VERSION_YEAR " + str(datetime.datetime.now().year) + "\n")
+    f.close()
+
+    fhash = open("core/version_hash.gen.h", "wb")
+    githash = ""
+    if os.path.isfile(".git/HEAD"):
+        head = open(".git/HEAD", "rb").readline().strip()
+        if head.startswith("ref: "):
+            head = ".git/" + head[5:]
+            if os.path.isfile(head):
+                githash = open(head, "rb").readline().strip()
+        else:
+            githash = head
+    fhash.write("#define VERSION_HASH \"" + githash + "\"")
+    fhash.close()
 
 
 def parse_cg_file(fname, uniforms, sizes, conditionals):