Skip to content

Commit 78f8bfa

Browse files
committed
patch python builtin generation scripts to handle multiple aliases. TODO - perform tests
1 parent b9435da commit 78f8bfa

File tree

4 files changed

+41
-12
lines changed

4 files changed

+41
-12
lines changed

src/nbl/builtin/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,6 @@ LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/glsl/blit/normalizatio
239239
LIST_BUILTIN_RESOURCE(NBL_RESOURCES_TO_EMBED "nbl/builtin/glsl/blit/normalization/shared_normalization.glsl")
240240

241241
macro(NBL_ADD_BUILTIN_RESOURCES _TARGET_) # internal for Nabla only
242-
ADD_CUSTOM_BUILTIN_RESOURCES("${_TARGET_}" NBL_RESOURCES_TO_EMBED "${NBL_ROOT_PATH}/include" "nbl::builtin" "${NBL_ROOT_PATH_BINARY}/include")
242+
ADD_CUSTOM_BUILTIN_RESOURCES("${_TARGET_}" NBL_RESOURCES_TO_EMBED "${NBL_ROOT_PATH}/include" "nbl::builtin" "${NBL_ROOT_PATH_BINARY}/include" "${NBL_ROOT_PATH_BINARY}/src")
243243
endmacro()
244244

src/nbl/builtin/builtinDataGen.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
correspondingHeaderFile = sys.argv[5]
2121

2222
with open(resourcesFile, "r") as f:
23-
resourcePaths = f.read().rstrip().split(',')
24-
23+
resourcePaths = f.read().rstrip().readlines()
24+
2525
#opening a file
2626
outp = open(outputFilename,"w+")
2727

@@ -32,7 +32,10 @@
3232
outp.write("const std::pair<const uint8_t*, size_t> get_resource();")
3333

3434
# writing binary data of all files in a loop
35-
for x in resourcePaths:
35+
for z in resourcePaths:
36+
itemData = z.split(',')
37+
x = itemData[0]
38+
3639
outp.write('\n\ttemplate<> const std::pair<const uint8_t*, size_t> get_resource<NBL_CORE_UNIQUE_STRING_LITERAL_TYPE("%s")>()' % x)
3740
outp.write('\n\t{')
3841
outp.write('\n\t\tstatic const uint8_t data[] = {\n\t\t\t')
@@ -56,20 +59,40 @@
5659
outp.write('\n\t\t};')
5760
outp.write('\n\t\treturn { data, sizeof(data) };')
5861
outp.write('\n\t}')
59-
60-
62+
63+
if len(itemData) > 1:
64+
for alias in range(1, len(itemData)):
65+
outp.write('\n\ttemplate<> const std::pair<const uint8_t*, size_t> get_resource<NBL_CORE_UNIQUE_STRING_LITERAL_TYPE("%s")>()' % alias)
66+
outp.write('\n\t{')
67+
outp.write('\n\t\treturn get_resource<NBL_CORE_UNIQUE_STRING_LITERAL_TYPE("%s")>();' % x)
68+
outp.write('\n\t{')
69+
6170
outp.write("\tstd::pair<const uint8_t*, size_t> get_resource_runtime(const std::string& filename) {\n")
6271
outp.write("\t\tstatic std::unordered_map<std::string, int> resourcesByFilename( {\n")
6372
counter = 1
64-
for x in resourcePaths:
73+
74+
for z in resourcePaths:
75+
itemData = z.split(',')
76+
x = itemData[0]
77+
6578
outp.write("\t\t\t{\"%s\", %d},\n" % (x,counter))
79+
80+
if len(itemData) > 1:
81+
for alias in range(1, len(itemData)):
82+
outp.write("\t\t\t{\"%s\", %d},\n" % (alias,counter))
83+
6684
counter+= 1
85+
6786
outp.write("\t\t});\n\n")
6887
outp.write("\t\tauto resource = resourcesByFilename.find(filename);\n")
6988
outp.write("\t\tif(resource == resourcesByFilename.end()) return { nullptr,0ull };\n")
7089
outp.write("\t\tswitch (resource->second) \n\t\t\t{\n")
7190
counter = 1
72-
for x in resourcePaths:
91+
92+
for z in resourcePaths:
93+
itemData = z.split(',')
94+
x = itemData[0]
95+
7396
outp.write("\t\t\tcase %d:\n\t\t\t\t\treturn get_resource<NBL_CORE_UNIQUE_STRING_LITERAL_TYPE(\"%s\")>();\n" % (counter,x))
7497
counter+= 1
7598

src/nbl/builtin/builtinHeaderGen.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
guardSuffix = sys.argv[5]
2121

2222
with open(resourcesFile, "r") as f:
23-
resourcePaths = f.read().rstrip().split(',')
23+
resourcePaths = f.read().rstrip().readlines()
2424

2525
#opening a file
2626
outp = open(outputFilename,"w+")
@@ -37,8 +37,15 @@
3737
outp.write("\t\tconst std::pair<const uint8_t*, size_t> get_resource();\n")
3838

3939
#Iterating through input list
40-
for x in resourcePaths:
40+
for z in resourcePaths:
41+
itemData = z.split(',')
42+
x = itemData[0]
43+
4144
outp.write('\n\t\textern template const std::pair<const uint8_t*, size_t> get_resource<NBL_CORE_UNIQUE_STRING_LITERAL_TYPE("%s")>();' % x)
45+
46+
if len(itemData) > 1:
47+
for alias in range(1, len(itemData)):
48+
outp.write('\n\t\textern template const std::pair<const uint8_t*, size_t> get_resource<NBL_CORE_UNIQUE_STRING_LITERAL_TYPE("%s")>();' % alias)
4249

4350
outp.write("\n\t}")
4451
outp.write("\n#endif // _" + guardSuffix + "_BUILTINRESOURCEDATA_H_")

src/nbl/builtin/utils.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ function(ADD_CUSTOM_BUILTIN_RESOURCES _TARGET_NAME_ _BUNDLE_NAME_ _BUNDLE_SEARCH
5959
set(_CURRENT_ITEM_ "${X}")
6060
string(FIND "${_CURRENT_ITEM_}" "," _FOUND_ REVERSE)
6161

62-
6362
string(REPLACE "," ";" _ITEM_DATA_ "${_CURRENT_ITEM_}")
6463
list(LENGTH _ITEM_DATA_ _ITEM_D_SIZE_)
6564
list(GET _ITEM_DATA_ 0 _CURRENT_PATH_) # _LBR_PATH_ path for given bundle
@@ -100,7 +99,7 @@ function(ADD_CUSTOM_BUILTIN_RESOURCES _TARGET_NAME_ _BUNDLE_NAME_ _BUNDLE_SEARCH
10099

101100
set(NBL_RESOURCES_LIST_FILE "${_OUTPUT_SOURCE_DIRECTORY_}/resources.txt")
102101

103-
string(REPLACE ";" "," RESOURCES_ARGS "${${_BUNDLE_NAME_}}")
102+
string(REPLACE ";" "\n" RESOURCES_ARGS "${_LBR_${_BUNDLE_NAME_}_}")
104103
file(WRITE "${NBL_RESOURCES_LIST_FILE}" "${RESOURCES_ARGS}")
105104

106105
set(NBL_BUILTIN_RESOURCES_HEADER "${_OUTPUT_HEADER_DIRECTORY_}/${NBL_BS_HEADER_FILENAME}")

0 commit comments

Comments
 (0)