2418 # dependent because different configs can have different EPOCROOT |
2418 # dependent because different configs can have different EPOCROOT |
2419 # and VARIANT_HRH values. Each "build platform" has one associated |
2419 # and VARIANT_HRH values. Each "build platform" has one associated |
2420 # "export platform" but several "build platforms" can be associated |
2420 # "export platform" but several "build platforms" can be associated |
2421 # with the same "export platform". |
2421 # with the same "export platform". |
2422 exports = {} |
2422 exports = {} |
2423 |
2423 |
2424 self.__Raptor.Debug("MetaReader: configsToBuild: %s", [b.name for b in configsToBuild]) |
2424 # We sort configurations by name here. This is solely to deal with situations |
2425 for buildConfig in configsToBuild: |
2425 # where macros linked to builds end up being used in preprocessor conditionals |
|
2426 # within bld.inf files that then wrap exports under PRJ_EXPORTS statements. |
|
2427 # Having exports that are conditional on these macros isn't supported, but |
|
2428 # as there are areas of the source base that make this assumption, and |
|
2429 # fail if emulator macros are used instead of arm ones, we ensure that arm |
|
2430 # configurations come first when multiple configurations are active, and so are |
|
2431 # used first for determining exports. |
|
2432 sortedConfigsToBuild = sorted(configsToBuild,key=lambda config: config.name) |
|
2433 |
|
2434 self.__Raptor.Debug("MetaReader: sortedConfigsToBuild: %s", [b.name for b in sortedConfigsToBuild]) |
|
2435 for buildConfig in sortedConfigsToBuild: |
2426 # get everything we need to know about the configuration |
2436 # get everything we need to know about the configuration |
2427 evaluator = self.__Raptor.GetEvaluator(None, buildConfig) |
2437 evaluator = self.__Raptor.GetEvaluator(None, buildConfig) |
2428 |
2438 |
2429 detail = {} |
2439 detail = {} |
2430 detail['PLATFORM'] = evaluator.CheckedGet("TRADITIONAL_PLATFORM") |
2440 detail['PLATFORM'] = evaluator.CheckedGet("TRADITIONAL_PLATFORM") |