Get Git commit hash when Godot is a submodule

Submodules don't have a .git folder in the same place, but a .git file
that points to the actual folder. This change take this into account.
This commit is contained in:
George Marques 2019-02-08 16:17:07 -02:00
parent 5e837b3f13
commit 874cbefa26
1 changed files with 11 additions and 3 deletions

View File

@ -61,14 +61,22 @@ def update_version(module_version_string=""):
# NOTE: It is safe to generate this file here, since this is still executed serially # NOTE: It is safe to generate this file here, since this is still executed serially
fhash = open("core/version_hash.gen.h", "w") fhash = open("core/version_hash.gen.h", "w")
githash = "" githash = ""
if os.path.isfile(".git/HEAD"): gitfolder = ".git"
head = open(".git/HEAD", "r").readline().strip()
if os.path.isfile(".git"):
module_folder = open(".git", "r").readline().strip()
if module_folder.startswith("gitdir: "):
gitfolder = module_folder[8:]
if os.path.isfile(os.path.join(gitfolder, "HEAD")):
head = open(os.path.join(gitfolder, "HEAD"), "r").readline().strip()
if head.startswith("ref: "): if head.startswith("ref: "):
head = ".git/" + head[5:] head = os.path.join(gitfolder, head[5:])
if os.path.isfile(head): if os.path.isfile(head):
githash = open(head, "r").readline().strip() githash = open(head, "r").readline().strip()
else: else:
githash = head githash = head
fhash.write("#define VERSION_HASH \"" + githash + "\"") fhash.write("#define VERSION_HASH \"" + githash + "\"")
fhash.close() fhash.close()