示例#1
0
文件: mmenv.py 项目: Zeroman/mm
    def __init__(self):
        self.__config_path = []
        self.arch = mmcommon.default_arch()

        self.mm_path = os.path.dirname(os.path.realpath(__file__))
        self.build_module_script = os.path.join(self.mm_path, "build_module.py")
        self.__config = mmconfig.MMConfig()

        self.scons_path = self.__config.get_value("scons.path", mmcommon.find_file("scons"))
        self.scons_param = self.__config.get_value("scons.param")
        site_dir = os.path.join(self.mm_path, "site")
        self.scons_param = self.__add_cmd_param(self.scons_param, "--site-dir=" + site_dir)
        self.scons_script = os.path.join(self.mm_path, "sconstruct")
        # self.scons_param = self.__add_cmd_param(self.scons_param, "-Q ")

        self.ccflags = self.__config.get_split_value("env.ccflags")

        self.__config_path.append(os.path.realpath(os.getcwd()))
        self.__config_path.append(os.path.realpath(os.path.expandvars('$HOME')))
        self.__config_path.append(os.path.realpath(self.mm_path))
        self.__config_path = list(set(self.__config_path))
        for path in self.__config_path:
            config_file = os.path.join(path, mmcommon.MM_CONFIG)
            if os.path.exists(config_file) and os.path.isfile(config_file):
                # print("mm  " + config_file)
                self.__config.read_config(config_file)

        self.build_dir = self.__config.get_value("env.build_dir", "mm_build")
        mmcommon.mkdir(self.build_dir)
        self.source_dir = self.__config.get_value("env.src_dir", "mm_source")
        mmcommon.mkdir(self.source_dir)
        self.lib_dir = self.__config.get_value("env.lib_dir", "mm_lib")
        mmcommon.mkdir(self.lib_dir)
        self.src_suffixes = self.__config.get_split_value("env.src_suffixes")

        self.__repo_objs = []
        repos = self.__config.get_items("repo.dir")
        for repo in repos:
            url = self.__config.get_value("repo.dir." + repo + ".url")
            assert os.path.isdir(url)
            self.__repo_objs.append(mmrepo.MMDirRepo(repo, url))
        repos = self.__config.get_items("repo.single")
        for repo in repos:
            url = self.__config.get_value("repo.single." + repo + ".url")
            assert os.path.isdir(url)
            self.__repo_objs.append(mmrepo.MMSingleRepo(repo, url))

        mm_lib_path = os.getenv('MM_ENV_LIB_PATH')
        if mm_lib_path is not None:
            self.__config.set_value("env.lib_dir", mm_lib_path)
            self.lib_dir = mm_lib_path

        mm_env_repo = os.getenv('MM_ENV_REPO')
        if mm_env_repo is not None:
            (repo, name, url) = mm_env_repo.split(":")
            node = mmcommon.join_node("repo.dir", name, url)
            self.__config.set_value(node, url)
            assert os.path.isdir(url)
            self.__repo_objs.append(mmrepo.MMDirRepo(name, url))
示例#2
0
文件: mmconfig.py 项目: Zeroman/mm
 def __to_values(str_node, dict_value):
     if dict_value is None:
         return
     for key in dict_value.keys():
         value = dict_value[key]
         temp_node = mmcommon.join_node(str_node, key)
         # print("%s : %s = %s" % (str_node, key, value))
         if key != "":
             __to_values(temp_node, value)
         else:
             dict_values[temp_node] = value
示例#3
0
文件: mmconfig.py 项目: Zeroman/mm
 def __to_values(str_node, dict_value):
     if dict_value is None:
         return
     for key in dict_value.keys():
         value = dict_value[key]
         temp_node = mmcommon.join_node(str_node, key)
         # print("%s : %s = %s" % (str_node, key, value))
         if key != "":
             __to_values(temp_node, value)
         else:
             dict_values[temp_node] = value
示例#4
0
文件: mmenv.py 项目: Zeroman/mm
 def get_arch_env(self, node):
     return self.__config.get_value(mmcommon.join_node("arch", self.arch, node))
示例#5
0
文件: mmenv.py 项目: Zeroman/mm
 def get_arch_env(self, node):
     return self.__config.get_value(
         mmcommon.join_node("arch", self.arch, node))
示例#6
0
文件: mmenv.py 项目: Zeroman/mm
    def __init__(self):
        self.__config_path = []
        self.arch = mmcommon.default_arch()

        self.mm_path = os.path.dirname(os.path.realpath(__file__))
        self.build_module_script = os.path.join(self.mm_path,
                                                "build_module.py")
        self.__config = mmconfig.MMConfig()

        self.scons_path = self.__config.get_value("scons.path",
                                                  mmcommon.find_file("scons"))
        self.scons_param = self.__config.get_value("scons.param")
        site_dir = os.path.join(self.mm_path, "site")
        self.scons_param = self.__add_cmd_param(self.scons_param,
                                                "--site-dir=" + site_dir)
        self.scons_script = os.path.join(self.mm_path, "sconstruct")
        # self.scons_param = self.__add_cmd_param(self.scons_param, "-Q ")

        self.ccflags = self.__config.get_split_value("env.ccflags")

        self.__config_path.append(os.path.realpath(os.getcwd()))
        self.__config_path.append(os.path.realpath(
            os.path.expandvars('$HOME')))
        self.__config_path.append(os.path.realpath(self.mm_path))
        self.__config_path = list(set(self.__config_path))
        for path in self.__config_path:
            config_file = os.path.join(path, mmcommon.MM_CONFIG)
            if os.path.exists(config_file) and os.path.isfile(config_file):
                # print("mm  " + config_file)
                self.__config.read_config(config_file)

        self.build_dir = self.__config.get_value("env.build_dir", "mm_build")
        mmcommon.mkdir(self.build_dir)
        self.source_dir = self.__config.get_value("env.src_dir", "mm_source")
        mmcommon.mkdir(self.source_dir)
        self.lib_dir = self.__config.get_value("env.lib_dir", "mm_lib")
        mmcommon.mkdir(self.lib_dir)
        self.src_suffixes = self.__config.get_split_value("env.src_suffixes")

        self.__repo_objs = []
        repos = self.__config.get_items("repo.dir")
        for repo in repos:
            url = self.__config.get_value("repo.dir." + repo + ".url")
            assert os.path.isdir(url)
            self.__repo_objs.append(mmrepo.MMDirRepo(repo, url))
        repos = self.__config.get_items("repo.single")
        for repo in repos:
            url = self.__config.get_value("repo.single." + repo + ".url")
            assert os.path.isdir(url)
            self.__repo_objs.append(mmrepo.MMSingleRepo(repo, url))

        mm_lib_path = os.getenv('MM_ENV_LIB_PATH')
        if mm_lib_path is not None:
            self.__config.set_value("env.lib_dir", mm_lib_path)
            self.lib_dir = mm_lib_path

        mm_env_repo = os.getenv('MM_ENV_REPO')
        if mm_env_repo is not None:
            (repo, name, url) = mm_env_repo.split(":")
            node = mmcommon.join_node("repo.dir", name, url)
            self.__config.set_value(node, url)
            assert os.path.isdir(url)
            self.__repo_objs.append(mmrepo.MMDirRepo(name, url))