DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

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:
Mutils/res2c.py | 20++++++++++++++------
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)