3
3
# _LBR_PATH_ is a path to builtin resource
4
4
5
5
macro (LIST_BUILTIN_RESOURCE _BUNDLE_NAME_ _LBR_PATH_ )
6
- set (_OPTIONAL_ALIAS_ "${ARGV2} " )
6
+ math (EXPR _ALIAS_C_ "${ARGC} - 2" OUTPUT_FORMAT DECIMAL )
7
+ set (_ALIAS_ARGS_ ${ARGV} )
8
+
9
+ if ("${_ALIAS_C_} " GREATER "0" )
10
+ list (SUBLIST _ALIAS_ARGS_ "2" "${_ALIAS_C_} " _ALIAS_ARGS_ )
11
+
12
+ foreach (_ALIAS_ IN LISTS _ALIAS_ARGS_ )
13
+ string (APPEND _OPTIONAL_ALIASES_ ",${_ALIAS_} " )
14
+ endforeach ()
15
+ endif ()
7
16
8
17
list (APPEND ${_BUNDLE_NAME_} "${_LBR_PATH_} " )
9
18
set (${_BUNDLE_NAME_} ${${_BUNDLE_NAME_}} PARENT_SCOPE ) # override
10
19
11
- list (APPEND _LBR_${_BUNDLE_NAME_}_ "${_LBR_PATH_} , ${_OPTIONAL_ALIAS_ } " )
20
+ list (APPEND _LBR_${_BUNDLE_NAME_}_ "${_LBR_PATH_}${_OPTIONAL_ALIASES_ } " )
12
21
set (_LBR_${_BUNDLE_NAME_}_ ${_LBR_${_BUNDLE_NAME_}_} PARENT_SCOPE ) # override
22
+
23
+ unset (_OPTIONAL_ALIASES_ )
24
+ unset (_ALIAS_ARGS_ )
13
25
endmacro ()
14
26
15
27
# Creates a library with builtin resources for given bundle
@@ -47,8 +59,16 @@ function(ADD_CUSTOM_BUILTIN_RESOURCES _TARGET_NAME_ _BUNDLE_NAME_ _BUNDLE_SEARCH
47
59
set (_CURRENT_ITEM_ "${X} " )
48
60
string (FIND "${_CURRENT_ITEM_} " "," _FOUND_ REVERSE )
49
61
50
- string (REGEX REPLACE ",.*" "" _CURRENT_PATH_ "${_CURRENT_ITEM_} " ) # _LBR_PATH_ path for given bundle
51
- string (REGEX REPLACE ".*," "" _CURRENT_ALIAS_ "${_CURRENT_ITEM_} " ) # optional alias for given builtin resource
62
+
63
+ string (REPLACE "," ";" _ITEM_DATA_ "${_CURRENT_ITEM_} " )
64
+ list (LENGTH _ITEM_DATA_ _ITEM_D_SIZE_ )
65
+ list (GET _ITEM_DATA_ 0 _CURRENT_PATH_ ) # _LBR_PATH_ path for given bundle
66
+
67
+ if (_ITEM_D_SIZE_ GREATER 1 )
68
+ list (SUBLIST _ITEM_DATA_ "1" "${_ITEM_D_SIZE_} " _ITEM_ALIASES_ ) # optional aliases for given builtin resource
69
+ else ()
70
+ unset (_ITEM_ALIASES_ )
71
+ endif ()
52
72
53
73
set (NBL_BUILTIN_RESOURCE_ABS_PATH "${_BUNDLE_SEARCH_DIRECTORY_} /${_CURRENT_PATH_} " ) # an absolute path to a builtin resource
54
74
list (APPEND NBL_BUILTIN_RESOURCES "${NBL_BUILTIN_RESOURCE_ABS_PATH} " )
@@ -63,9 +83,9 @@ function(ADD_CUSTOM_BUILTIN_RESOURCES _TARGET_NAME_ _BUNDLE_NAME_ _BUNDLE_SEARCH
63
83
64
84
LIST_RESOURCE_FOR_ARCHIVER ("${_CURRENT_PATH_} " "${_FILE_SIZE_} " "${_ITR_} " )
65
85
66
- if (_CURRENT_ALIAS_ ) # if an alias is present list it with the same ID of the current handled builtin resource
86
+ foreach (_CURRENT_ALIAS_ IN LISTS _ITEM_ALIASES_ )
67
87
LIST_RESOURCE_FOR_ARCHIVER ("${_CURRENT_ALIAS_} " "${_FILE_SIZE_} " "${_ITR_} " )
68
- endif ()
88
+ endforeach ()
69
89
else ()
70
90
message (FATAL_ERROR "!" ) # TODO: set GENERATED property, therefore we could turn some input into output and list it as builtin resource
71
91
endif ()
0 commit comments