summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/gbuild-to-ide39
1 files changed, 13 insertions, 26 deletions
diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide
index 7de2fb48d371..8ee2d134c9fd 100755
--- a/bin/gbuild-to-ide
+++ b/bin/gbuild-to-ide
@@ -39,47 +39,40 @@ class GbuildLinkTarget:
class GbuildLib(GbuildLinkTarget):
- def __init__(self, name, library, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs):
+ def __init__(self, name, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs):
GbuildLinkTarget.__init__(self, name, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs)
- self.library = library
def short_name(self):
"""Return the short name of target based on the Library_* makefile name"""
return 'Library %s' % self.name
def target_name(self):
- return 'Library_%s' % self.library
+ return 'Library_%s' % self.name
def library_name(self):
- return self.library
+ return self.name
class GbuildTest(GbuildLinkTarget):
- def __init__(self, name, test, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs):
+ def __init__(self, name, 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 'CppunitTest %s' % self.name
def target_name(self):
- return 'CppunitTest_%s' % self.test
-
- def test_name(self):
- return self.test
-
+ return 'CppunitTest_%s' % self.name
class GbuildExe(GbuildLinkTarget):
- def __init__(self, name, executable, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs):
+ def __init__(self, name, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs):
GbuildLinkTarget.__init__(self, name, location, include, include_sys, defs, cxxobjects, cxxflags, linked_libs)
- self.executable = executable
def short_name(self):
"""Return the short name of target based on the Executable_* makefile name"""
return 'Executable %s' % self.name
def target_name(self):
- return 'Executable_%s' % self.executable
+ return 'Executable_%s' % self.name
class GbuildParser:
@@ -88,7 +81,7 @@ class GbuildParser:
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.libnames, self.exenames, self.testnames, self.target_by_path, self.target_by_location) = ({}, {}, {}, {}, {})
+ (self.target_by_path, self.target_by_location) = ({}, {})
includepattern = re.compile('-I(\S+)')
isystempattern = re.compile('-isystem\s*(\S+)')
@@ -129,7 +122,6 @@ class GbuildParser:
(foundincludes, foundisystem) = GbuildParser.__split_includes(json['INCLUDE'])
return GbuildLib(
GbuildParser.libpattern.match(os.path.basename(json['MAKEFILE'])).group(1),
- json['LINKTARGET'],
os.path.dirname(json['MAKEFILE']),
foundincludes,
foundisystem,
@@ -151,7 +143,6 @@ class GbuildParser:
return GbuildTest(
testname,
- json['LINKTARGET'],
os.path.dirname(json['MAKEFILE']),
foundincludes,
foundisystem,
@@ -165,7 +156,6 @@ class GbuildParser:
(foundincludes, foundisystem) = GbuildParser.__split_includes(json['INCLUDE'])
return GbuildExe(
GbuildParser.exepattern.match(os.path.basename(json['MAKEFILE'])).group(1),
- json['LINKTARGET'],
os.path.dirname(json['MAKEFILE']),
foundincludes,
foundisystem,
@@ -178,17 +168,14 @@ class GbuildParser:
for jsonfilename in os.listdir(os.path.join(self.workdir, 'GbuildToJson', 'Library')):
with open(os.path.join(self.workdir, 'GbuildToJson', 'Library', jsonfilename), 'r') as f:
lib = self.__lib_from_json(json.load(f))
- self.libnames[lib.library] = lib.name
self.libs.append(lib)
for jsonfilename in os.listdir(os.path.join(self.workdir, 'GbuildToJson', 'Executable')):
with open(os.path.join(self.workdir, 'GbuildToJson', 'Executable', jsonfilename), 'r') as f:
exe = self.__exe_from_json(json.load(f))
- self.exenames[exe.executable] = exe.name
self.exes.append(exe)
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:
@@ -715,7 +702,7 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
# For some reverse-engineered documentation on the project.pbxproj format,
# see http://www.monobjc.net/xcode-project-file-format.html .
def write_xcodeproj(self, moduledir, target):
- xcodeprojdir = os.path.join(moduledir, '%s.xcodeproj' % target.name)
+ xcodeprojdir = os.path.join(moduledir, '%s.xcodeproj' % target.target_name())
try:
os.mkdir(xcodeprojdir)
except:
@@ -732,7 +719,7 @@ class XcodeIntegrationGenerator(IdeIntegrationGenerator):
# module = location.split('/')[-1]
# module_directory = os.path.join(self.rootlocation, module)
for target in self.gbuildparser.target_by_location[location]:
- # project_path = os.path.join(module_directory, '%s.pbxroj' % target.name)
+ # project_path = os.path.join(module_directory, '%s.pbxroj' % target.target_name())
self.write_xcodeproj(location, target)
@@ -781,7 +768,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
module = location.split('/')[-1]
module_directory = os.path.join(self.solution_directory, module)
for target in self.gbuildparser.target_by_location[location]:
- project_path = os.path.join(module_directory, '%s.vcxproj' % target.name)
+ project_path = os.path.join(module_directory, '%s.vcxproj' % target.target_name())
project_guid = self.write_project(project_path, target)
p = VisualStudioIntegrationGenerator.Project(project_guid, target, project_path)
projects.append(p)
@@ -807,7 +794,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
f.write('Microsoft Visual Studio Solution File, Format Version 12.00\n')
for project in projects:
target = project.target
- print(' %s' % target.name, end='')
+ print(' %s' % target.target_name(), end='')
proj_path = os.path.relpath(project.path, os.path.abspath(os.path.dirname(solution_path)))
f.write('Project("{%s}") = "%s", "%s", "{%s}"\n' %
(VisualStudioIntegrationGenerator.nmake_project_guid,
@@ -919,7 +906,7 @@ class VisualStudioIntegrationGenerator(IdeIntegrationGenerator):
if os.path.isfile(cxxfile):
ET.SubElement(cxxobjects_node, '{%s}ClCompile' % ns, Include=cxxfile)
else:
- print('Source %s in project %s does not exist' % (cxxfile, target.name))
+ print('Source %s in project %s does not exist' % (cxxfile, target.target_name()))
includes_node = ET.SubElement(proj_node, '{%s}ItemGroup' % ns)
for cxxobject in target.cxxobjects: