@@ -148,30 +148,61 @@ function(read_targetconfig)
148148 set (TGTSYS_LIST)
149149 set (MISSION_APPS)
150150 set (MISSION_PSPMODULES)
151+
152+ # This while loop checks for a sequential set of variables prefixed with TGT<x>_
153+ # where <x> is a sequence number starting with 1. The first "gap" (undefined name)
154+ # is treated as the end of list.
155+ # This is the historical way of specifying CPU configs. New/future development should
156+ # prefer the name-based specification. This translates the sequential TGT<x> variable
157+ # to a name-based variable.
151158 set (TGTID 0)
152159 while (1)
153160 math (EXPR TGTID "${TGTID} + 1" )
154161 if (NOT DEFINED TGT${TGTID} _NAME)
155162 break ()
156163 endif ()
157- if (NOT DEFINED TGT${TGTID} _SYSTEM)
158- set (TGT${TGTID} _SYSTEM "cpu${TGTID} " )
159- set (TGT${TGTID} _SYSTEM "${TGT${TGTID} _SYSTEM}" PARENT_SCOPE)
160- endif ()
161- if (NOT DEFINED TGT${TGTID} _PLATFORM)
162- set (TGT${TGTID} _PLATFORM "default" "${TGT${TGTID} _NAME}" )
163- set (TGT${TGTID} _PLATFORM "${TGT${TGTID} _PLATFORM}" PARENT_SCOPE)
164- endif ()
164+ set (CPUNAME ${TGT${TGTID} _NAME})
165+ # by default if PROCESSORID isn't specified, then use TGTID number.
166+ if (NOT DEFINED TGT${TGTID} _PROCESSORID)
167+ set (TGT${TGTID} _PROCESSORID ${TGTID} )
168+ endif ()
165169
166- if (SIMULATION)
170+ # Translate the TGT<x> prefix to the CPU name prefix
171+ # also propagate the value to parent scope
172+ foreach (PROP PROCESSORID
173+ APPLIST
174+ STATIC_APPLIST
175+ STATIC_SYMLIST
176+ PSP_MODULELIST
177+ FILELIST
178+ EMBED_FILELIST
179+ SYSTEM
180+ PLATFORM)
181+ set (${CPUNAME} _${PROP} ${TGT${TGTID} _${PROP} })
182+ set (${CPUNAME} _${PROP} ${${CPUNAME} _${PROP} } PARENT_SCOPE)
183+ endforeach ()
184+ list (APPEND MISSION_CPUNAMES ${CPUNAME} )
185+ endwhile ()
186+
187+ foreach (CPUNAME ${MISSION_CPUNAMES} )
188+ if (DEFINED SIMULATION)
167189 # if simulation use simulation system architecture for all targets
168190 set (TOOLCHAIN_NAME "${SIMULATION} " )
169- else (SIMULATION )
191+ elseif ( DEFINED ${CPUNAME} _SYSTEM )
170192 # get the target system arch identifier string
171- set (TOOLCHAIN_NAME "${TGT${TGTID} _SYSTEM}" )
172- endif (SIMULATION)
193+ set (TOOLCHAIN_NAME "${${CPUNAME} _SYSTEM}" )
194+ else ()
195+ # assume a toolchain name matching the CPU name
196+ set (TOOLCHAIN_NAME "${CPUNAME} " )
197+ set (${CPUNAME} _SYSTEM ${TOOLCHAIN_NAME} PARENT_SCOPE)
198+ endif ()
199+
200+ if (NOT DEFINED ${CPUNAME} _PLATFORM)
201+ set (${CPUNAME} _PLATFORM "default" "${CPUNAME} " )
202+ set (${CPUNAME} _PLATFORM "${${CPUNAME} _PLATFORM}" PARENT_SCOPE)
203+ endif ()
173204
174- set (BUILD_CONFIG ${TOOLCHAIN_NAME} ${TGT ${TGTID } _PLATFORM})
205+ set (BUILD_CONFIG ${TOOLCHAIN_NAME} ${${CPUNAME } _PLATFORM})
175206
176207 # convert to a the string which is safe for a variable name
177208 string (REGEX REPLACE "[^A-Za-z0-9]" "_" SYSVAR "${BUILD_CONFIG} " )
@@ -181,25 +212,25 @@ function(read_targetconfig)
181212
182213 # if the "global" applist is not empty, append to every CPU applist
183214 if (MISSION_GLOBAL_APPLIST)
184- list (APPEND TGT ${TGTID } _APPLIST ${MISSION_GLOBAL_APPLIST} )
185- set (TGT ${TGTID } _APPLIST ${TGT ${TGTID } _APPLIST} PARENT_SCOPE)
215+ list (APPEND ${CPUNAME } _APPLIST ${MISSION_GLOBAL_APPLIST} )
216+ set (${CPUNAME } _APPLIST ${${CPUNAME } _APPLIST} PARENT_SCOPE)
186217 endif (MISSION_GLOBAL_APPLIST)
187218
188219 if (MISSION_GLOBAL_STATIC_APPLIST)
189- list (APPEND TGT ${TGTID } _STATIC_APPLIST ${MISSION_GLOBAL_STATIC_APPLIST} )
190- set (TGT ${TGTID } _STATIC_APPLIST ${TGT ${TGTID } _STATIC_APPLIST} PARENT_SCOPE)
220+ list (APPEND ${CPUNAME } _STATIC_APPLIST ${MISSION_GLOBAL_STATIC_APPLIST} )
221+ set (${CPUNAME } _STATIC_APPLIST ${${CPUNAME } _STATIC_APPLIST} PARENT_SCOPE)
191222 endif (MISSION_GLOBAL_STATIC_APPLIST)
192223
193224 # Append to global lists
194225 list (APPEND TGTSYS_LIST "${SYSVAR} " )
195- list (APPEND TGTSYS_${SYSVAR} "${TGTID } " )
196- list (APPEND TGTSYS_${SYSVAR} _APPS ${TGT ${TGTID } _APPLIST})
197- list (APPEND TGTSYS_${SYSVAR} _STATICAPPS ${TGT ${TGTID } _STATIC_APPLIST})
198- list (APPEND TGTSYS_${SYSVAR} _PSPMODULES ${TGT ${TGTID } _PSP_MODULELIST})
199- list (APPEND MISSION_APPS ${TGT ${TGTID } _APPLIST} ${TGT ${TGTID } _STATIC_APPLIST})
200- list (APPEND MISSION_PSPMODULES ${TGT ${TGTID } _PSP_MODULELIST})
226+ list (APPEND TGTSYS_${SYSVAR} "${CPUNAME } " )
227+ list (APPEND TGTSYS_${SYSVAR} _APPS ${${CPUNAME } _APPLIST})
228+ list (APPEND TGTSYS_${SYSVAR} _STATICAPPS ${${CPUNAME } _STATIC_APPLIST})
229+ list (APPEND TGTSYS_${SYSVAR} _PSPMODULES ${${CPUNAME } _PSP_MODULELIST})
230+ list (APPEND MISSION_APPS ${${CPUNAME } _APPLIST} ${${CPUNAME } _STATIC_APPLIST})
231+ list (APPEND MISSION_PSPMODULES ${${CPUNAME } _PSP_MODULELIST})
201232
202- endwhile ()
233+ endforeach ()
203234
204235 # Remove duplicate entries in the generated lists
205236 list (REMOVE_DUPLICATES TGTSYS_LIST)
@@ -214,6 +245,7 @@ function(read_targetconfig)
214245 set (TGTSYS_LIST ${TGTSYS_LIST} PARENT_SCOPE)
215246 set (MISSION_APPS ${MISSION_APPS} PARENT_SCOPE)
216247 set (MISSION_PSPMODULES ${MISSION_PSPMODULES} PARENT_SCOPE)
248+ set (MISSION_CPUNAMES ${MISSION_CPUNAMES} PARENT_SCOPE)
217249
218250 foreach (SYSVAR ${TGTSYS_LIST} )
219251 set (TGTSYS_${SYSVAR} ${TGTSYS_${SYSVAR} } PARENT_SCOPE)
@@ -229,7 +261,7 @@ function(read_targetconfig)
229261 list (REMOVE_DUPLICATES TGTSYS_${SYSVAR} _PSPMODULES)
230262 set (TGTSYS_${SYSVAR} _PSPMODULES ${TGTSYS_${SYSVAR} _PSPMODULES} PARENT_SCOPE)
231263 endif (TGTSYS_${SYSVAR} _PSPMODULES)
232- endforeach (SYSVAR IN LISTS TGTSYS_LIST)
264+ endforeach (SYSVAR ${ TGTSYS_LIST} )
233265
234266endfunction (read_targetconfig)
235267
0 commit comments