1#
2# Copyright (C) 2023-2024 Siemens AG
3#
4# SPDX-License-Identifier: GPL-2.0-only
5#
6"""Devtool ide-sdk generic IDE plugin"""
7
8import os
9import logging
10from devtool.ide_plugins import IdeBase, GdbCrossConfig
11
12logger = logging.getLogger('devtool')
13
14
15class IdeNone(IdeBase):
16    """Generate some generic helpers for other IDEs
17
18    Modified recipe mode:
19    Generate some helper scripts for remote debugging with GDB
20
21    Shared sysroot mode:
22    A wrapper for bitbake meta-ide-support and bitbake build-sysroots
23    """
24
25    def __init__(self):
26        super().__init__()
27
28    def setup_shared_sysroots(self, shared_env):
29        real_multimach_target_sys = shared_env.ide_support.real_multimach_target_sys
30        deploy_dir_image = shared_env.ide_support.deploy_dir_image
31        env_script = os.path.join(
32            deploy_dir_image, 'environment-setup-' + real_multimach_target_sys)
33        logger.info(
34            "To use this SDK please source this: %s" % env_script)
35
36    def setup_modified_recipe(self, args, image_recipe, modified_recipe):
37        """generate some helper scripts and config files
38
39        - Execute the do_install task
40        - Execute devtool deploy-target
41        - Generate a gdbinit file per executable
42        - Generate the oe-scripts sym-link
43        """
44        script_path = modified_recipe.gen_install_deploy_script(args)
45        logger.info("Created: %s" % script_path)
46
47        self.initialize_gdb_cross_configs(image_recipe, modified_recipe)
48
49        IdeBase.gen_oe_scrtips_sym_link(modified_recipe)
50
51
52def register_ide_plugin(ide_plugins):
53    ide_plugins['none'] = IdeNone
54