mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
"""
 | 
						|
Copyright (c) 2018-2019 ARM Limited. All rights reserved.
 | 
						|
 | 
						|
SPDX-License-Identifier: Apache-2.0
 | 
						|
 | 
						|
Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
you may not use this file except in compliance with the License.
 | 
						|
You may obtain a copy of the License at
 | 
						|
 | 
						|
http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
Unless required by applicable law or agreed to in writing, software
 | 
						|
distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
See the License for the specific language governing permissions and
 | 
						|
limitations 
 | 
						|
"""
 | 
						|
 | 
						|
from os.path import dirname, abspath, join, exists
 | 
						|
 | 
						|
from tools.utils import json_file_to_dict
 | 
						|
from tools.targets import TARGET_MAP
 | 
						|
from tools.config import Config
 | 
						|
 | 
						|
CONFIG_DIR = dirname(abspath(__file__))
 | 
						|
CONFIG_MAP = json_file_to_dict(join(CONFIG_DIR, "config_paths.json"))
 | 
						|
TARGET_CONFIGS = json_file_to_dict(join(CONFIG_DIR, "target_configs.json"))
 | 
						|
 | 
						|
def get_valid_configs(target_name):
 | 
						|
    if target_name in TARGET_CONFIGS:
 | 
						|
        target_config = TARGET_CONFIGS[target_name]
 | 
						|
    elif (target_name in TARGET_MAP and 'EMAC' in TARGET_MAP[target_name].device_has):
 | 
						|
        target_config = { "default_test_configuration": "ETHERNET", "test_configurations": ["ETHERNET"] }
 | 
						|
    else:
 | 
						|
        return {}
 | 
						|
 | 
						|
    config_dict = {}
 | 
						|
    for attr in CONFIG_MAP:
 | 
						|
        if attr in target_config['test_configurations']:
 | 
						|
            config_dict[attr] = CONFIG_MAP[attr]
 | 
						|
    return config_dict
 | 
						|
 | 
						|
def get_config_path(conf_name, target_name):
 | 
						|
    configs = get_valid_configs(target_name)
 | 
						|
    if configs and conf_name.upper() in configs:
 | 
						|
        return join(CONFIG_DIR, configs[conf_name.upper()])
 | 
						|
    else:
 | 
						|
        return None
 | 
						|
 | 
						|
def get_default_config(source_dir, target_name):
 | 
						|
    if target_name in TARGET_CONFIGS:
 | 
						|
        config_name = TARGET_CONFIGS[target_name]['default_test_configuration']
 | 
						|
        if config_name == "NONE":
 | 
						|
            return None
 | 
						|
        return join(CONFIG_DIR, CONFIG_MAP[config_name])
 | 
						|
    elif Config.find_app_config(source_dir):
 | 
						|
        return None
 | 
						|
    elif (target_name in TARGET_MAP and 'EMAC' in TARGET_MAP[target_name].device_has):
 | 
						|
        return join(CONFIG_DIR, CONFIG_MAP["ETHERNET"])
 | 
						|
    else:
 | 
						|
        return None
 |