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:
parent
5e837b3f13
commit
874cbefa26
1 changed files with 11 additions and 3 deletions
14
methods.py
14
methods.py
|
@ -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()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue