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