commit 4edfa52a045dbec6e7660aff5bff5cc025bfbaa8
parent 2c3463a6381cb84e4c0b97270616c55cf63e3717
Author: falkTX <falktx@falktx.com>
Date: Sat, 27 Aug 2022 02:39:29 +0100
res2c.py: generate unsigned char bytes, allow to set output folder
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/utils/res2c.py b/utils/res2c.py
@@ -40,13 +40,13 @@ def res2c(namespace, filenames):
for filename in filenames:
shortFilename = filename.rsplit(os.sep, 1)[-1].split(".", 1)[0]
- shortFilename = shortFilename.replace("-", "_")
+ shortFilename = shortFilename.replace("-", "_").replace("@","_")
resData = open(filename, 'rb').read()
print("Generating data for \"%s\"" % (filename))
- fdH.write(" extern const char* %sData;\n" % shortFilename)
+ fdH.write(" extern const unsigned char* %sData;\n" % shortFilename)
fdH.write(" const unsigned int %sDataSize = %i;\n" % (shortFilename, len(resData)))
if tempIndex != len(filenames):
@@ -70,7 +70,7 @@ def res2c(namespace, filenames):
curColumn += 1
fdC.write("};\n")
- fdC.write("const char* %s::%sData = (const char*)temp_%s_%i;\n" % (namespace, shortFilename, shortFilename, tempIndex))
+ fdC.write("const unsigned char* %s::%sData = (const unsigned char*)temp_%s_%i;\n" % (namespace, shortFilename, shortFilename, tempIndex))
if tempIndex != len(filenames):
fdC.write("\n")
@@ -89,25 +89,33 @@ def res2c(namespace, filenames):
# -----------------------------------------------------
if __name__ == '__main__':
- if len(sys.argv) != 3:
- print("Usage: %s <namespace> <resource-folder>" % sys.argv[0])
+ if len(sys.argv) not in (3, 4):
+ print("Usage: %s <namespace> <resource-folder> [output-folder=$CWD]" % sys.argv[0])
quit()
namespace = sys.argv[1].replace("-","_")
resFolder = sys.argv[2]
+ outFolder = sys.argv[3] if len(sys.argv) == 4 else None
if not os.path.exists(resFolder):
print("Folder '%s' does not exist" % resFolder)
quit()
+ if outFolder is not None and not os.path.exists(outFolder):
+ print("Output folder '%s' does not exist" % outFolder)
+ quit()
+
# find resource files
resFiles = []
for root, dirs, files in os.walk(resFolder):
for name in files:
- resFiles.append(os.path.join(root, name))
+ resFiles.append(os.path.abspath(os.path.join(root, name)))
resFiles.sort()
+ if outFolder is not None:
+ os.chdir(outFolder)
+
# create code now
res2c(namespace, resFiles)