# Path: dependency/SyntaxTag.py
# class TagVector(object):
# class TagScalar(object):
# class TagINCLUDE(TagVector):
# class TagCPPFLAGS(TagVector):
# class TagCFLAGS(TagVector):
# class TagCXXFLAGS(TagVector):
# class TagLDFLAGS(TagVector):
# class TagInclude(TagVector):
# class TagCppFlags(TagVector):
# class TagCxxFlags(TagVector):
# class TagCFlags(TagVector):
# class TagLDFlags(TagVector):
# class TagProtoFlags(TagVector):
# class TagLibs(TagVector):
# class TagSources(TagVector):
# class TagUTArgs(TagVector):
#     def __init__(self):
#     def __str__(self):
#     def AddV(self, v):
#     def AddVs(self, vs):
#     def AddSV(self, v):
#     def AddSVs(self, vs):
#     def V(self):
#     def __add__(self, other):
#     def __sub__(self, other):
#     def __init__(self):
#     def __str__(self):
#     def SetV(self, v):
#     def V(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
# 
# Path: dependency/Builder.py
# class Builder(object):
#     """
#     base class for splicing the compile command
#     """
#     def __init__(self, obj, compiler, workspace):
#         """
#         init function
#         Args:
#             obj : the cvs path of object file
#             compiler : the path of compiler
#             workspace : the workspace path
#         """
#         self.obj = obj
#         self.obj_dir = os.path.dirname(obj)
#         self.compiler = compiler
#         self.workspace = workspace
#         self.build_cmd = None      # build cmd
#         self.error = "OK"
# 
#     def __str__(self):
#         """
#         """
#         return self.build_cmd
#     
#     def GetBuildCmd(self):
#         """
#         return the build cmd
#         """
#         return self.build_cmd
# 
#     def Error(self):
#         """
#         return the error message
#         """
#         return self.error


import os
import sys
import copy
from dependency import SyntaxTag
from dependency import Builder
        self.builder = Builder.ObjBuilder(self.outfile, self.infile, self.includes, 
                                          options, self.env.CC(), self.env.Workspace())



class CXXSource(Source):
    """
    C++ Source Code
    """
    TYPE = SourceType.CXX
    EXTS = ('.cpp', '.cc', '.cxx')
    def __init__(self, infile, env, args):
        """
        """
        Source.__init__(self, infile, env, args)

    def Compiler(self):
        """
        return the path of Compiler
        """
        return self.env.CXX()

    def Action(self):
        """
        init builder
        """
        Source.Action(self)
        self.CalcObjectName()
        options = ['-DBROC']
        options.extend(self.cppflags + self.cxxflags)

# Path: dependency/SyntaxTag.py
# class TagVector(object):
# class TagScalar(object):
# class TagINCLUDE(TagVector):
# class TagCPPFLAGS(TagVector):
# class TagCFLAGS(TagVector):
# class TagCXXFLAGS(TagVector):
# class TagLDFLAGS(TagVector):
# class TagInclude(TagVector):
# class TagCppFlags(TagVector):
# class TagCxxFlags(TagVector):
# class TagCFlags(TagVector):
# class TagLDFlags(TagVector):
# class TagProtoFlags(TagVector):
# class TagLibs(TagVector):
# class TagSources(TagVector):
# class TagUTArgs(TagVector):
#     def __init__(self):
#     def __str__(self):
#     def AddV(self, v):
#     def AddVs(self, vs):
#     def AddSV(self, v):
#     def AddSVs(self, vs):
#     def V(self):
#     def __add__(self, other):
#     def __sub__(self, other):
#     def __init__(self):
#     def __str__(self):
#     def SetV(self, v):
#     def V(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
#     def __init__(self):
# 
# Path: dependency/Builder.py
# class Builder(object):
#     """
#     base class for splicing the compile command
#     """
#     def __init__(self, obj, compiler, workspace):
#         """
#         init function
#         Args:
#             obj : the cvs path of object file
#             compiler : the path of compiler
#             workspace : the workspace path
#         """
#         self.obj = obj
#         self.obj_dir = os.path.dirname(obj)
#         self.compiler = compiler
#         self.workspace = workspace
#         self.build_cmd = None      # build cmd
#         self.error = "OK"
# 
#     def __str__(self):
#         """
#         """
#         return self.build_cmd
#     
#     def GetBuildCmd(self):
#         """
#         return the build cmd
#         """
#         return self.build_cmd
# 
#     def Error(self):
#         """
#         return the error message
#         """
#         return self.error


# Path: dependency/Source.py
import os
import sys
import copy
from dependency import SyntaxTag
from dependency import Builder

        self.builder = Builder.ObjBuilder(self.outfile, self.infile, self.includes, 
                                          options, self.env.CC(), self.env.Workspace())



class CXXSource(Source):
    """
    C++ Source Code
    """
    TYPE = SourceType.CXX
    EXTS = ('.cpp', '.cc', '.cxx')
    def __init__(self, infile, env, args):
        """
        """
        Source.__init__(self, infile, env, args)

    def Compiler(self):
        """
        return the path of Compiler
        """
        return self.env.CXX()

    def Action(self):
        """
        init builder
        """
        Source.Action(self)
        self.CalcObjectName()
        options = ['-DBROC']
        options.extend(self.cppflags + self.cxxflags)

        self.builder = Builder.ObjBuilder(self.outfile, self.infile, self.includes, 