# Copyright (c) 2026 Huawei Technologies Co., Ltd.
# openUBMC is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.

from conanbase import ConanBase, copy
from conan.tools.files import chdir

required_conan_version = ">=2.13.0"


class AppConan(ConanBase):
    def build(self):
        dt_file_list = [
           {
               'src': 'test/unit/test_luaclib/l_c_ipmi_lib.c' ,
               'dst': 'src/luaclib/ipmi_rmcp_lib/src/l_c_ipmi_lib.c'
           },
           {
               'src': 'test/unit/test_luaclib/driver.h',
               'dst': 'src/luaclib/ipmi_rmcp_lib/inc/driver.h'
           },
           {
               'src': 'test/unit/test_luaclib/skynet.h',
               'dst': 'src/luaclib/ipmi_rmcp_lib/inc/skynet.h'
           }
        ]

        dt_dir_list = [
           {
               'src': 'test/unit/test_luaclib/soc_adapter',
               'dst': 'src/luaclib/ipmi_rmcp_lib/inc'
           }
        ]

        if self.options.test:
            with chdir(self, self.source_folder):
                for file_entry in dt_file_list:
                    self.run(f'cp {file_entry["src"]} {file_entry["dst"]}')

                for dir_entry in dt_dir_list:
                    self.run(f'cp -r {dir_entry["src"]} {dir_entry["dst"]}')
        super().build()

    def _pre_generate(self):
        tc = super()._pre_generate()
        if self.options.chip == 'oee_ast2600':
            tc.variables["CONAN_DEFS_CHIP"] = True
        else:
            tc.variables["CONAN_DEFS_CHIP"] = False
        return tc

    def package(self):
        super().package()
        copy(self, "permissions.ini", self.source_folder, self.package_folder)