diff --git a/src/platform/python/_builder.h b/src/platform/python/_builder.h index 9721e14b6..7d7703bb5 100644 --- a/src/platform/python/_builder.h +++ b/src/platform/python/_builder.h @@ -30,6 +30,7 @@ void free(void*); #include #include #include +#include #define PYEXPORT extern "Python+C" #include "platform/python/log.h" diff --git a/src/platform/python/_builder.py b/src/platform/python/_builder.py index 8c8a3716c..f93766b22 100644 --- a/src/platform/python/_builder.py +++ b/src/platform/python/_builder.py @@ -23,6 +23,7 @@ ffi.set_source("mgba._pylib", """ #include #include #include +#include #include #include #include diff --git a/src/platform/python/mgba/__init__.py b/src/platform/python/mgba/__init__.py index aab19b4d2..a8c0ddce4 100644 --- a/src/platform/python/mgba/__init__.py +++ b/src/platform/python/mgba/__init__.py @@ -5,6 +5,8 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. from ._pylib import ffi, lib +from collections import namedtuple + def createCallback(structName, cbName, funcName=None): funcName = funcName or "_py{}{}".format(structName, cbName[0].upper() + cbName[1:]) fullStruct = "struct {}*".format(structName) @@ -13,3 +15,19 @@ def createCallback(structName, cbName, funcName=None): return getattr(ffi.from_handle(h.pyobj), cbName)(*args) return ffi.def_extern(name=funcName)(cb) + +version = ffi.string(lib.projectVersion).decode('utf-8') + +GitInfo = namedtuple("GitInfo", "commit commitShort branch revision") + +git = {} +if lib.gitCommit and lib.gitCommit != "(unknown)": + git['commit'] = ffi.string(lib.gitCommit).decode('utf-8') +if lib.gitCommitShort and lib.gitCommitShort != "(unknown)": + git['commitShort'] = ffi.string(lib.gitCommitShort).decode('utf-8') +if lib.gitBranch and lib.gitBranch != "(unknown)": + git['branch'] = ffi.string(lib.gitBranch).decode('utf-8') +if lib.gitRevision > 0: + git['revision'] = lib.gitRevision + +git = GitInfo(**git)