コード例 #1
0
    def __init__(self, name, srcs, deps, visibility, outs, cmd, cmd_name,
                 generate_hdrs, export_incs, heavy, kwargs):
        """Init method.
        Init the gen rule target.
        """
        srcs = var_to_list(srcs)
        deps = var_to_list(deps)
        outs = var_to_list(outs)

        super(GenRuleTarget, self).__init__(name=name,
                                            type='gen_rule',
                                            srcs=srcs,
                                            deps=deps,
                                            visibility=visibility,
                                            kwargs=kwargs)

        self.data['outs'] = outs
        self.data['locations'] = []
        self.data['cmd'] = LOCATION_RE.sub(self._process_location_reference,
                                           cmd)
        self.data['cmd_name'] = cmd_name
        if generate_hdrs is not None:
            self.data['generate_hdrs'] = generate_hdrs
        if export_incs:
            self.data['export_incs'] = self._expand_incs(
                var_to_list(export_incs))
        self.data['heavy'] = heavy
コード例 #2
0
    def __init__(self,
                 name,
                 srcs,
                 deps,
                 visibility,
                 outs,
                 cmd,
                 cmd_name,
                 generated_hdrs,
                 generated_incs,
                 export_incs,
                 cleans,
                 heavy,
                 kwargs):
        """Init method.
        Init the gen rule target.
        """
        srcs = var_to_list(srcs)
        deps = var_to_list(deps)
        super(GenRuleTarget, self).__init__(
                name=name,
                type='gen_rule',
                srcs=srcs,
                deps=deps,
                visibility=visibility,
                kwargs=kwargs)

        if not outs:
            self.error('"outs" can not be empty')
        if not cmd:
            self.error('"cmd" can not be empty')
        outs = [os.path.normpath(o) for o in var_to_list(outs)]

        self.attr['outs'] = outs
        self.attr['locations'] = []
        self.attr['cmd'] = LOCATION_RE.sub(self._process_location_reference, cmd)
        self.attr['cmd_name'] = cmd_name
        self.attr['heavy'] = heavy
        self.cleans = var_to_list(cleans)
        for clean in self.cleans:
            self._remove_on_clean(self._target_file_path(clean))

        if generated_incs is not None:
            generated_incs = [self._target_file_path(inc) for inc in var_to_list(generated_incs)]
            self.attr['generated_incs'] = generated_incs
            for inc in generated_incs:
                cc_targets._declare_hdr_dir(self, inc)
        else:
            if generated_hdrs is None:
                # Auto judge
                generated_hdrs = [o for o in outs if cc_targets.is_header_file(o)]
            else:
                generated_hdrs = var_to_list(generated_hdrs)
            if generated_hdrs:
                generated_hdrs = [self._target_file_path(h) for h in generated_hdrs]
                self.attr['generated_hdrs'] = generated_hdrs
                cc_targets._declare_hdrs(self, generated_hdrs)

        if export_incs:
            self.attr['export_incs'] = self._expand_incs(var_to_list(export_incs))
コード例 #3
0
    def __init__(self,
                 name,
                 srcs,
                 deps,
                 visibility,
                 outs,
                 cmd,
                 cmd_name,
                 generated_hdrs,
                 generated_incs,
                 export_incs,
                 heavy,
                 kwargs):
        """Init method.
        Init the gen rule target.
        """
        srcs = var_to_list(srcs)
        deps = var_to_list(deps)
        outs = [os.path.normpath(o) for o in var_to_list(outs)]

        super(GenRuleTarget, self).__init__(
                name=name,
                type='gen_rule',
                srcs=srcs,
                deps=deps,
                visibility=visibility,
                kwargs=kwargs)

        self.data['outs'] = outs
        self.data['locations'] = []
        self.data['cmd'] = LOCATION_RE.sub(self._process_location_reference, cmd)
        self.data['cmd_name'] = cmd_name
        self.data['heavy'] = heavy

        if generated_incs is not None:
            generated_incs = var_to_list(generated_incs)
            self.data['generated_incs'] = [self._target_file_path(inc) for inc in generated_incs]
        else:
            if generated_hdrs is None:
                # Auto judge
                generated_hdrs = [o for o in outs if cc_targets.is_header_file(o)]
            else:
                generated_hdrs = var_to_list(generated_hdrs)
            if generated_hdrs:
                generated_hdrs = [self._target_file_path(h) for h in generated_hdrs]
                self.data['generated_hdrs'] = generated_hdrs

        if export_incs:
            self.data['export_incs'] = self._expand_incs(var_to_list(export_incs))
コード例 #4
0
    def _process_srcs(self, srcs):
        """
        Process sources which could be regular files, directories or
        location references.
        """
        for s in srcs:
            if isinstance(s, tuple):
                src, dst = s
            elif isinstance(s, str):
                src, dst = s, ''
            else:
                self.error_exit('Invalid src %s. src should be either str or tuple.' % s)

            m = LOCATION_RE.search(src)
            if m:
                self._add_location_reference(m, dst)
            else:
                self._add_package_source(src, dst)
コード例 #5
0
    def _process_test_data(self, testdata):
        """
        Process test data of which the source could be regular file
        or location reference.
        """
        self.data['testdata'], self.data['locations'] = [], []
        for td in testdata:
            if isinstance(td, tuple):
                src, dst = td
            elif isinstance(td, str):
                src, dst = td, ''
            else:
                self.error_exit('Invalid testdata %s. Test data should be either str or tuple.' % td)

            m = LOCATION_RE.search(src)
            if m:
                key, type = self._add_location_reference_target(m)
                self.data['locations'].append((key, type, dst))
            else:
                self.data['testdata'].append(td)
コード例 #6
0
ファイル: java_targets.py プロジェクト: ghostwyd/blade-build
    def _process_resources(self, resources):
        """
        Process resources which could be regular files/directories or
        location references.
        """
        self.data['resources'], self.data['location_resources'] = [], []
        for resource in resources:
            if isinstance(resource, tuple):
                src, dst = resource
            elif isinstance(resource, str):
                src, dst = resource, ''
            else:
                self.error_exit('Invalid resource %s. Resource should be either a str or a tuple.' %
                                resource)

            m = LOCATION_RE.search(src)
            if m:
                key, type = self._add_location_reference_target(m)
                self.data['location_resources'].append((key, type, dst))
            else:
                self.data['resources'].append((src, dst))
コード例 #7
0
    def __init__(self, name, srcs, deps, outs, cmd, cmd_name, generate_hdrs,
                 heavy, blade, kwargs):
        """Init method.

        Init the gen rule target.

        """
        srcs = var_to_list(srcs)
        deps = var_to_list(deps)
        outs = var_to_list(outs)

        Target.__init__(self, name, 'gen_rule', srcs, deps, None, blade,
                        kwargs)

        self.data['outs'] = outs
        self.data['locations'] = []
        self.data['cmd'] = LOCATION_RE.sub(self._process_location_reference,
                                           cmd)
        self.data['cmd_name'] = cmd_name
        if generate_hdrs is not None:
            self.data['generate_hdrs'] = generate_hdrs
        self.data['heavy'] = heavy