Ejemplo n.º 1
0
    def action(self):
        Source.action(self)
        cxxfile = self._infile
        objfile = bfunction.replace_file_ext_name(
            bfunction.add_prefix_to_basename(cxxfile,
                                             self._target.basename() + '_'),
            '.o')
        gccflags_s = '%(_incpaths_s)s %(_depends_incpaths_s)s ' % (
            self.__dict__)
        gccflags_s += '%(_cppflags_s)s %(_cxxflags_s)s ' % (self.__dict__)

        real_cc = self._ctx.cxx()
        command1 = '%(real_cc)s -MG -MM %(gccflags_s)s %(cxxfile)s' % (
            locals())
        command2 = 'cpp -E %(gccflags_s)s %(cxxfile)s' % (locals())
        cxx = '$(CXX)'

        depfiles = []
        depfiles.append(cxxfile)
        depfiles.extend(self._prefixes)
        depfiles.extend(
            get_cpp_depend_files(command1, command2, self._ctx, self._infile))

        if (not self._incpaths_flag):
            r_gccflags_s = '$(INCPATH) '
        else:
            r_gccflags_s = '%(_incpaths_s)s ' % (self.__dict__)

        r_gccflags_s += '$(DEP_INCPATH) '

        if (not self._cppflags_flag):
            r_gccflags_s += '$(CPPFLAGS) '
        else:
            r_gccflags_s += '%(_cppflags_s)s ' % (self.__dict__)

        if (not self._cxxflags_flag):
            r_gccflags_s += '$(CXXFLAGS) '
        else:
            r_gccflags_s += '%(_cxxflags_s)s ' % (self.__dict__)

        if cxxfile in self._ctx.user_sources_extra().v():
            r_gccflags_s += '$(FLAGSEXTRA)'

        cmd = '%(cxx)s -c %(r_gccflags_s)s -o %(objfile)s %(cxxfile)s' % (
            locals())
        commands = []
        commands.append(cmd)
        r = (objfile, self._line_delim.join(depfiles), commands)
        self._make_lines.append(r)
        self._clean_files.append(objfile)
        self._outfile = objfile
Ejemplo n.º 2
0
 def __init__(self, name, args, ctx):
     Target.__init__(self, name, args, ctx)
     self._target = bfunction.add_prefix_to_basename(
         bfunction.add_file_ext_name(self._name, '.so'), 'lib')