def test_CPPFLAGS(self): """ test Syntax.CPPFLAGS """ #test case of debug mode self._env._build_mode = 'debug' Syntax.CPPFLAGS("-g -Wall", "-g -O2") self.assertTrue("-g -Wall" in self._env._g_cppflags.V() \ and "-g -O2" not in self._env._g_cppflags.V()) #test case of muti CPPFLAGS Syntax.CPPFLAGS("-W -Wshadow", "-g -O2") Syntax.CPPFLAGS("-finline-functions", "-g -O2") self.assertTrue("-g -Wall" in self._env._g_cppflags.V() \ and "-g -O2" not in self._env._g_cppflags.V()) self.assertTrue("-W -Wshadow" in self._env._g_cppflags.V() \ and "-g -O2" not in self._env._g_cppflags.V()) self.assertTrue("-finline-functions" in self._env._g_cppflags.V() \ and "-g -O2" not in self._env._g_cppflags.V()) #reset g_cppflags self._env._g_cppflags = SyntaxTag.TagCPPFLAGS() #test case of release mode self._env._build_mode = 'release' Syntax.CPPFLAGS("-g -Wall", "-g -O2") self.assertTrue("-g -O2" in self._env._g_cppflags.V() \ and "-g -Wall" not in self._env._g_cppflags.V())
def __init__(self, module): """ Args: module : BrocModule_pb.Module object """ self._module = module self._build_mode = 'debug' # debug | release # compiler infos self._cc = 'gcc' self._cxx = 'g++' self._compiler_dir = '' # global preporcess and compile flags in one BROC file self._g_cppflags = SyntaxTag.TagCPPFLAGS() self._g_cflags = SyntaxTag.TagCFLAGS() self._g_cxxflags = SyntaxTag.TagCXXFLAGS() self._g_incpaths = SyntaxTag.TagINCLUDE() self._g_incpaths.AddV('. broc_out') self._g_linkflags = SyntaxTag.TagLDFLAGS() # for tag PUBLISH self._publish_cmd = [] self._sources = [] self._targets = []
def test_LDFLAGS(self): """ test Syntax.LDFLAGS """ #test case of debug mode Environment.SetCurrent(self._env) self._env._build_mode = 'debug' Syntax.LDFLAGS("-lpthread -lcrypto", "-lprotobuf -lpthread") self.assertTrue("-lpthread -lcrypto" in self._env._g_linkflags.V() \ and "-lprotobuf -lpthread" not in self._env._g_linkflags.V()) #reset g_linkflags self._env._g_linkflags = SyntaxTag.TagCPPFLAGS() #test case of release mode self._env._build_mode = 'release' Syntax.LDFLAGS("-lpthread -lcrypto", "-lprotobuf -lpthread") self.assertTrue("-lprotobuf -lpthread" in self._env._g_linkflags.V() \ and "-lpthread -lcrypto" not in self._env._g_linkflags.V())
def test_CreateSources(self): """ test Syntax._CreateSource """ #init env global flags self._env._g_cppflags = SyntaxTag.TagCPPFLAGS() self._env._g_cflags = SyntaxTag.TagCFLAGS() self._env._g_cxxflags = SyntaxTag.TagCXXFLAGS() self._env._g_incflags = SyntaxTag.TagINCLUDE() self._env._g_incflags.AddV('. broc_out') self._env._build_mode = 'debug' #set local flags tag cpptags = Syntax.CppFlags("-DDEBUG_LOCAL", "-DRELEASE_LOCAL") cxxtags = Syntax.CxxFlags("-Wwrite-strings", "-Wswitch") ctags = Syntax.CFlags("-Wwrite-strings", "-Wswitch") incflag = Syntax.Include("$WORKSPACE/baidu/bcloud") #no flags src = Syntax._CreateSources("baidu/broc/hello.cpp", []) Source.Source.Action(src) self.assertEqual(src.cppflags, []) self.assertEqual(src.cxxflags, []) self.assertEqual(src.cflags, []) self.assertEqual(src.includes, [".", "broc_out"]) self.assertEqual(src.infile, "baidu/broc/hello.cpp") #only local flags src = Syntax._CreateSources("baidu/broc/hello.cpp", \ [cpptags, cxxtags, ctags, incflag]) Source.Source.Action(src) self.assertEqual(src.cppflags, ["-DDEBUG_LOCAL"]) self.assertEqual(src.cxxflags, ["-Wwrite-strings"]) self.assertEqual(src.cflags, ["-Wwrite-strings"]) self.assertEqual(src.includes, [".", "broc_out", "baidu/bcloud"]) #only global flags Syntax.CFLAGS("-Werror -O2", "-W") Syntax.CXXFLAGS("-Werror -O2", "-W") Syntax.CPPFLAGS("-DDEBUG", "-DRELEASE") Syntax.INCLUDE("$WORKSPACE/baidu/broc") src = Syntax._CreateSources("baidu/broc/hello.cpp", []) Source.Source.Action(src) self.assertEqual(src.cppflags, ["-DDEBUG"]) self.assertEqual(src.cxxflags, ["-Werror -O2"]) self.assertEqual(src.cflags, ["-Werror -O2"]) self.assertEqual(src.includes, [".", "broc_out", "baidu/broc"]) self.assertEqual(src.infile, "baidu/broc/hello.cpp") #more value of global flags Syntax.CFLAGS("-Wall", "-Wall") Syntax.CXXFLAGS("-Wall", "-Wall") Syntax.CPPFLAGS("-DBROC", "-DBROC") src = Syntax._CreateSources("baidu/broc/hello.cpp", []) Source.Source.Action(src) self.assertEqual(src.cppflags, ["-DDEBUG", "-DBROC"]) self.assertEqual(src.cxxflags, ["-Werror -O2", "-Wall"]) self.assertEqual(src.cflags, ["-Werror -O2", "-Wall"]) self.assertEqual(src.includes, [".", "broc_out", "baidu/broc"]) self.assertEqual(src.infile, "baidu/broc/hello.cpp") #local flags cover golbal flags src = Syntax._CreateSources("baidu/broc/hello.cpp", [cpptags, cxxtags]) Source.Source.Action(src) self.assertEqual(src.cppflags, ["-DDEBUG_LOCAL"]) self.assertEqual(src.cxxflags, ["-Wwrite-strings"]) self.assertEqual(src.cflags, ["-Werror -O2", "-Wall"]) self.assertEqual(src.includes, [".", "broc_out", "baidu/broc"]) self.assertEqual(src.infile, "baidu/broc/hello.cpp")