summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorjan Iversen <jani@documentfoundation.org>2017-01-01 11:46:17 +0100
committerjan Iversen <jani@documentfoundation.org>2017-01-01 11:46:17 +0100
commit2823fd4698fdc8019af36f881aa90a89ba8d8236 (patch)
tree1ccd9c2a4cfe56c56c005be06ab98b389135ae3f /bin
parentd3c44886c56f401cc18c2ba480131a621d06c781 (diff)
gbuild-to-ide parser simplification.
Added build_type to objects instead of having 3 sets. Modified the generators to use build_type Change-Id: Ic884522eb6d2c41e7b838f62a0d0800dc4e02c8a
Diffstat (limited to 'bin')
-rwxr-xr-xbin/gbuild-to-ide37
1 files changed, 15 insertions, 22 deletions
diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide
index ea75965f1281..e12e0fa87dcc 100755
--- a/bin/gbuild-to-ide
+++ b/bin/gbuild-to-ide
@@ -65,7 +65,7 @@ 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.tests, self.modulenamelist) = ([], [], [], [])
+ (self.modulenamelist, self.files) = ([], [])
(self.target_by_path, self.target_by_location) = ({}, {})
includepattern = re.compile('-I(\S+)')
@@ -131,13 +131,8 @@ class GbuildParser:
jsondata['OBJCXXOBJECTS'],
jsondata['YACCOBJECTS'],
jsontype)
- if jsontype == 'Library':
- self.libs.append(newObj)
- elif jsontype == 'Executable':
- self.exes.append(newObj)
- elif jsontype == 'CppunitTest':
- self.tests.append(newObj)
- for target in set(self.libs) | set(self.exes) | set(self.tests):
+ self.files.append(newObj)
+ for target in self.files:
if target.location not in self.target_by_location:
self.target_by_location[target.location] = set()
self.target_by_location[target.location] |= set([target])
@@ -291,12 +286,8 @@ class DebugIntegrationGenerator(IdeIntegrationGenerator):
def emit(self):
print(self.gbuildparser.srcdir)
print(self.gbuildparser.builddir)
- for lib in self.gbuildparser.libs:
- print(lib)
- for exe in self.gbuildparser.exes:
- print(exe)
- for test in self.gbuildparser.tests:
- print(test)
+ for f in self.gbuildparser.files:
+ print(f)
class VimIntegrationGenerator(IdeIntegrationGenerator):
@@ -306,7 +297,7 @@ class VimIntegrationGenerator(IdeIntegrationGenerator):
def emit(self):
global_list = []
- for lib in set(self.gbuildparser.libs) | set(self.gbuildparser.tests):
+ for lib in self.gbuildparser.files:
entries = []
for file in lib.cxxobjects:
filePath = os.path.join(self.gbuildparser.srcdir, file) + ".cxx"
@@ -560,12 +551,14 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
self.write_dict(dict, file, 0)
def get_product_type(self, modulename):
- if modulename in self.gbuildparser.libs:
+ if modulename.build_type == 'Library':
return 'com.apple.product-type.library.dynamic'
- elif modulename in self.gbuildparser.exes:
- return 'com.apple.product-type.something'
- else:
+ elif modulename.build_type == 'Executable':
+ return 'com.apple.product-type.executable'
+ elif modulename.build_type == 'CppunitTest':
return 'com.apple.product-type.cppunit'
+ else:
+ return 'com.apple.product-type.something'
counter = 0
@@ -849,7 +842,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
def write_solution(self, solution_path, projects):
print('Solution %s:' % os.path.splitext(os.path.basename(solution_path))[0], end='')
- library_projects = [project for project in projects if project.target in self.gbuildparser.libs]
+ library_projects = [project for project in projects if project.target.build_type == 'Library']
with open(solution_path, 'w') as f:
f.write('Microsoft Visual Studio Solution File, Format Version 12.00\n')
for project in projects:
@@ -1038,7 +1031,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator):
def __init__(self, gbuildparser, ide):
IdeIntegrationGenerator.__init__(self, gbuildparser, ide)
self.target_by_location = {}
- for target in set(self.gbuildparser.libs) | set(self.gbuildparser.exes):
+ for target in self.gbuildparser.files:
if target.location not in self.target_by_location:
self.target_by_location[target.location] = set()
self.target_by_location[target.location] |= set([target])
@@ -1494,7 +1487,7 @@ class QtCreatorIntegrationGenerator(IdeIntegrationGenerator):
self.data_libs = {}
- all_libs = set(self.gbuildparser.libs) | set(self.gbuildparser.exes)
+ all_libs = self.gbuildparser.files
for lib in all_libs:
self._log("\nlibrary : %s, loc=%s" % (lib.short_name(), lib.location))
lib_name = os.path.basename(lib.location)