Browse Source

res2c.py: generate unsigned char bytes, allow to set output folder

Signed-off-by: falkTX <falktx@falktx.com>
pull/321/merge
falkTX 2 years ago
parent
commit
4edfa52a04
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
1 changed files with 14 additions and 6 deletions
  1. +14
    -6
      utils/res2c.py

+ 14
- 6
utils/res2c.py View File

@@ -40,13 +40,13 @@ def res2c(namespace, filenames):


for filename in filenames: for filename in filenames:
shortFilename = filename.rsplit(os.sep, 1)[-1].split(".", 1)[0] shortFilename = filename.rsplit(os.sep, 1)[-1].split(".", 1)[0]
shortFilename = shortFilename.replace("-", "_")
shortFilename = shortFilename.replace("-", "_").replace("@","_")


resData = open(filename, 'rb').read() resData = open(filename, 'rb').read()


print("Generating data for \"%s\"" % (filename)) 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))) fdH.write(" const unsigned int %sDataSize = %i;\n" % (shortFilename, len(resData)))


if tempIndex != len(filenames): if tempIndex != len(filenames):
@@ -70,7 +70,7 @@ def res2c(namespace, filenames):
curColumn += 1 curColumn += 1


fdC.write("};\n") 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): if tempIndex != len(filenames):
fdC.write("\n") fdC.write("\n")
@@ -89,25 +89,33 @@ def res2c(namespace, filenames):
# ----------------------------------------------------- # -----------------------------------------------------


if __name__ == '__main__': 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() quit()


namespace = sys.argv[1].replace("-","_") namespace = sys.argv[1].replace("-","_")
resFolder = sys.argv[2] resFolder = sys.argv[2]
outFolder = sys.argv[3] if len(sys.argv) == 4 else None


if not os.path.exists(resFolder): if not os.path.exists(resFolder):
print("Folder '%s' does not exist" % resFolder) print("Folder '%s' does not exist" % resFolder)
quit() quit()


if outFolder is not None and not os.path.exists(outFolder):
print("Output folder '%s' does not exist" % outFolder)
quit()

# find resource files # find resource files
resFiles = [] resFiles = []


for root, dirs, files in os.walk(resFolder): for root, dirs, files in os.walk(resFolder):
for name in files: for name in files:
resFiles.append(os.path.join(root, name))
resFiles.append(os.path.abspath(os.path.join(root, name)))


resFiles.sort() resFiles.sort()


if outFolder is not None:
os.chdir(outFolder)

# create code now # create code now
res2c(namespace, resFiles) res2c(namespace, resFiles)

Loading…
Cancel
Save