From 4edfa52a045dbec6e7660aff5bff5cc025bfbaa8 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 27 Aug 2022 02:39:56 +0100 Subject: [PATCH] res2c.py: generate unsigned char bytes, allow to set output folder Signed-off-by: falkTX --- utils/res2c.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/utils/res2c.py b/utils/res2c.py index 978af8b9..f36312ee 100755 --- 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 " % sys.argv[0]) + if len(sys.argv) not in (3, 4): + print("Usage: %s [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)