bin/gbuild-to-ide | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-)
New commits: commit 51ecdd4a2ae4835fa9fcaa7fbabbf58348738532 Author: Markus Mohrhard <[email protected]> Date: Sun Nov 27 21:43:33 2016 +0100 integrate the cppunit tests into gbuild-to-ide Change-Id: I0259b2a47175e6aac2eb801ac489fadeac562949 Reviewed-on: https://gerrit.libreoffice.org/31272 Tested-by: Jenkins <[email protected]> Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide index 0c6b2b6..e241f3f 100755 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -53,6 +53,21 @@ class GbuildLib(GbuildLinkTarget): def library_name(self): return self.library +class GbuildTest(GbuildLinkTarget): + def __init__(self, name, test, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs): + GbuildLinkTarget.__init__(self, name, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs) + self.test = test + + def short_name(self): + """Return the short name of target based n the CppunitTest_* makefile names""" + return 'Library %s' % self.name + + def target_name(self): + return 'CppunitTest_%s' % self.test + + def test_name(self): + return self.test + class GbuildExe(GbuildLinkTarget): def __init__(self, name, executable, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs): @@ -72,14 +87,15 @@ class GbuildParser: self.makecmd = makecmd self.binpath = os.path.dirname(os.environ['GPERF']) # woha, this is quite a hack (self.srcdir, self.builddir, self.instdir, self.workdir) = (os.environ['SRCDIR'], os.environ['BUILDDIR'], os.environ['INSTDIR'], os.environ['WORKDIR']) - (self.libs, self.exes, self.modulenamelist) = ([], [], []) - (self.libnames, self.exenames, self.target_by_path, self.target_by_location) = ({}, {}, {}, {}) + (self.libs, self.exes, self.tests, self.modulenamelist) = ([], [], [], []) + (self.libnames, self.exenames, self.testnames, self.target_by_path, self.target_by_location) = ({}, {}, {}, {}, {}) includepattern = re.compile('-I(\S+)') isystempattern = re.compile('-isystem\s*(\S+)') warningpattern = re.compile('-W\S+') libpattern = re.compile('Library_(.*)\.mk') exepattern = re.compile('Executable_(.*)\.mk') + testpattern = re.compile('CppunitTest_(.*)\.mk') @staticmethod def __split_includes(includes): @@ -123,6 +139,28 @@ class GbuildParser: json['LINKED_LIBS'].strip().split(' ')) @staticmethod + def __test_from_json(json): + (foundincludes, foundisystem) = GbuildParser.__split_includes(json['INCLUDE']) + testname_match = GbuildParser.testpattern.match(os.path.basename(json['MAKEFILE'])) + + # Workaround strange writer test makefile setup + if testname_match is None: + testname = "StrangeWriterMakefiles" + else: + testname = testname_match.group(1) + + return GbuildTest( + testname, + json['LINKTARGET'], + os.path.dirname(json['MAKEFILE']), + foundincludes, + foundisystem, + GbuildParser.__split_defs(json['DEFS']), + GbuildParser.__split_objs(json['CXXOBJECTS']), + GbuildParser.__split_flags(json['CXXFLAGS'], json['CXXFLAGSAPPEND']), + json['LINKED_LIBS'].strip().split(' ')) + + @staticmethod def __exe_from_json(json): (foundincludes, foundisystem) = GbuildParser.__split_includes(json['INCLUDE']) return GbuildExe( @@ -147,7 +185,12 @@ class GbuildParser: exe = self.__exe_from_json(json.load(f)) self.exenames[exe.executable] = exe.name self.exes.append(exe) - for target in set(self.libs) | set(self.exes): + for jsonfilename in os.listdir(os.path.join(self.workdir, 'GbuildToJson', 'CppunitTest')): + with open(os.path.join(self.workdir, 'GbuildToJson', 'CppunitTest', jsonfilename), 'r') as f: + test = self.__test_from_json(json.load(f)) + self.testnames[test.test] = test.name + self.tests.append(test) + for target in set(self.libs) | set(self.exes) | set(self.tests): if target.location not in self.target_by_location: self.target_by_location[target.location] = set() self.target_by_location[target.location] |= set([target]) @@ -304,6 +347,8 @@ class DebugIntegrationGenerator(IdeIntegrationGenerator): print(lib) for exe in self.gbuildparser.exes: print(exe) + for test in self.gbuildparser.tests: + print(test) class VimIntegrationGenerator(IdeIntegrationGenerator): _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
