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
|