gbuild-to-ide source code is relative to module

Last central change, before rewrapping xcode.

Change-Id: If9b3d668fa59fe32a7a89a17ea56a6852b260a2b
This commit is contained in:
jan Iversen 2017-01-28 11:51:48 +01:00
parent ce2238a7bd
commit bcaba2ca36

View File

@ -54,6 +54,8 @@ class GbuildParser:
def __split_objs(module,objsline, ext):
retObj = []
for obj in objsline.strip().split(' '):
if module in obj:
obj = obj[len(module)+1:]
if len(obj) > 0 and obj != 'CXXOBJECTS' and obj != '+=':
retObj.append(obj + ext)
return sorted(retObj)
@ -137,6 +139,7 @@ class GbuildParser:
module = moduleDict[i]
src = []
for target in module['targets']:
target['module'] = i
for ext in jsonSrc:
src.extend(target[ext])
module['sources'] = sorted(src)
@ -356,7 +359,7 @@ class testWinIde(IdeIntegrationGenerator):
cxxobjects_node = ET.SubElement(proj_node, '{%s}ItemGroup' % ns)
for cxxobject in target['CXXOBJECTS']:
cxxabspath = os.path.join(self.gbuildparser.srcdir, cxxobject)
cxxabspath = os.path.join(self.gbuildparser.srcdir + '/' + target['module'], cxxobject)
cxxfile = cxxabspath
if os.path.isfile(cxxabspath):
ET.SubElement(cxxobjects_node, '{%s}ClCompile' % ns, Include=cxxabspath)
@ -365,7 +368,7 @@ class testWinIde(IdeIntegrationGenerator):
includes_node = ET.SubElement(proj_node, '{%s}ItemGroup' % ns)
for cxxobject in target['CXXOBJECTS']:
include_abs_path = os.path.join(self.gbuildparser.srcdir, cxxobject)
include_abs_path = os.path.join(self.gbuildparser.srcdir + '/' + target['module'], cxxobject)
hxxfile = include_abs_path + '.hxx'
if os.path.isfile(hxxfile):
ET.SubElement(includes_node, '{%s}ClInclude' % ns, Include=hxxfile)
@ -471,7 +474,7 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
mainGroup['children'].append(moduleId)
for target in self.gbuildparser.modules[module]['targets']:
pbxproj['objects'].update(self.generate_project(target))
pbxproj['objects'].update(self.generate_project(target, module))
xcodeprojdir = './osx/libreoffice.xcodeproj'
try:
@ -611,7 +614,7 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
'path': i,
'sourceTree': '<group>'}
def generate_project(self, target):
def generate_project(self, target, module):
self.targetId = self.generate_id()
self.configurationListId = self.generate_id()
self.configurationDebugId = self.generate_id()
@ -633,10 +636,10 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
for i in self.sourceList.keys():
ref = self.sourceList[i]
path = self.sourceRefList[ref]['path']
name = '/'.join(path.split('/')[2:])
name = '/'.join(path.split('/')[1:])
objects[ref] = {'isa': 'PBXFileReference',
'lastKnownFileType': self.sourceRefList[ref]['lastKnownFileType'],
'path': path,
'path': module + '/' + path,
'name': name,
'fileEncoding': 4,
'sourceTree': '<group>'}
@ -817,7 +820,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
cxxobjects_node = ET.SubElement(proj_node, '{%s}ItemGroup' % ns)
for cxxobject in target['CXXOBJECTS']:
cxxabspath = os.path.join(self.gbuildparser.srcdir, cxxobject)
cxxabspath = os.path.join(self.gbuildparser.srcdir + '/' + target['module'], cxxobject)
cxxfile = cxxabspath
if os.path.isfile(cxxfile):
ET.SubElement(cxxobjects_node, '{%s}ClCompile' % ns, Include='../../' + cxxobject)
@ -826,7 +829,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
includes_node = ET.SubElement(proj_node, '{%s}ItemGroup' % ns)
for cxxobject in target['CXXOBJECTS']:
include_abs_path = os.path.join(self.gbuildparser.srcdir, cxxobject)
include_abs_path = os.path.join(self.gbuildparser.srcdir + '/' + target['module'], cxxobject)
hxxfile = include_abs_path + '.hxx'
if os.path.isfile(hxxfile):
ET.SubElement(includes_node, '{%s}ClInclude' % ns, Include='../../' + cxxobject + '.hxx')
@ -1258,6 +1261,7 @@ VersionControl=kdevgit
for target in self.gbuildparser.modules[m]['targets']:
for cxx in target['CXXOBJECTS']:
path = '/'.join(cxx.split('/')[:-1])
path = target['module'] + '/' + path
if path not in self.target_path:
self.target_path[path] = []
self.target_path[path].append(target)