Makefile.in | 1 bin/gbuild-to-ide | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-)
New commits: commit 115797f070888cbad93656dda8fa01ec6c98a3f5 Author: Noel Grandin <noelgran...@gmail.com> Date: Thu Jan 19 20:25:10 2017 +0200 beginning of support for CodeLite in gbuild-to-ide Change-Id: I5640ad193f2766400554012383d6c910f2160378 Reviewed-on: https://gerrit.libreoffice.org/33396 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/Makefile.in b/Makefile.in index 454755e..d01cbf4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -415,6 +415,7 @@ $(1)-ide-integration: gbuildtojson $(if $(filter MACOSX,$(OS_FOR_BUILD)),python3 endef $(foreach ide,\ + codelite \ debug \ kdevelop \ vs2013 \ diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide old mode 100755 new mode 100644 index 22a08cd..d4a32b2 --- a/bin/gbuild-to-ide +++ b/bin/gbuild-to-ide @@ -1,4 +1,4 @@ -#! /usr/bin/env python3 +#! /usr/local/bin/python3 # -*- Mode: python; tab-width: 4; indent-tabs-mode: t -*- # # This file is part of the LibreOffice project. @@ -1624,6 +1624,71 @@ DEFINES += %(defines)s SUBDIRS = %(subdirs)s """ +class CodeliteIntegrationGenerator(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): + if target.location not in self.target_by_location: + self.target_by_location[target.location] = set() + self.target_by_location[target.location] |= set([target]) + + + def emit(self): + # create main workspace file + codelite_workspace_file = 'lo.workspace1' + with open(codelite_workspace_file, 'w+') as f: + f.write(self.generate_workspace_content()) + + def generate_workspace_content(self): + projects1 = '' + projects2 = '' + projects3 = '' + for module in self.gbuildparser.modulenamelist: + projects1 += CodeliteIntegrationGenerator.codelite_projects1_template.format( + name = module + ) + projects2 += CodeliteIntegrationGenerator.codelite_projects2_template.format( + name = module, + config = 'Debug' + ) + projects3 += CodeliteIntegrationGenerator.codelite_projects2_template.format( + name = module, + config = 'Release' + ) + xml = CodeliteIntegrationGenerator.codelite_workspace_template.format( + projects1, + projects2, + projects3 + ) + return xml + + + codelite_workspace_template = """<?xml version="1.0" encoding="UTF-8"?> +<CodeLite_Workspace Name="lo" Database="" SWTLW="Yes"> + <WorkspaceParserMacros/> + <WorkspaceParserPaths> + <Include Path="${{WorkspacePath}}/include"/> + </WorkspaceParserPaths> + {0} + <BuildMatrix> + <WorkspaceConfiguration Name="Debug" Selected="yes"> + <Environment/> + {1} + </WorkspaceConfiguration> + <WorkspaceConfiguration Name="Release" Selected="yes"> + <Environment/> + {2} + </WorkspaceConfiguration> + </BuildMatrix> +</CodeLite_Workspace> +""" + codelite_projects1_template = """<Project Name="{name}" Path="{name}/{name}.project" Active="No"/> +""" + + codelite_projects2_template = """<Project Name="{name}" ConfigName="{config}"/> +""" def get_options(): parser = argparse.ArgumentParser( @@ -1659,6 +1724,7 @@ if __name__ == '__main__': 'vs2015': VisualStudioIntegrationGenerator, 'vim': VimIntegrationGenerator, 'qtcreator': QtCreatorIntegrationGenerator, + 'codelite' : CodeliteIntegrationGenerator, } if args.ide not in generators.keys(): _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits