diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-08-22 13:06:59 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-08-22 13:06:59 +0200 |
commit | e830fa3f496fd4d3ff53d8d9ca5916e4023d055a (patch) | |
tree | 58a039b0a8f27bbea38a1eff4c64495c13d280ca /solenv | |
parent | bc45700b1b8a0579502e09b3a7d6ec4c0c96dc8b (diff) |
remove solenv/bin/buildalyzer
- it was only a helper for dmake->gbuild migration
- this is luckily done and good riddance
Change-Id: Ib32ce4e48ff353d8207222fee18e9cb5d235bc5b
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/bin/buildalyzer | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/solenv/bin/buildalyzer b/solenv/bin/buildalyzer deleted file mode 100644 index 77d8d413eccb..000000000000 --- a/solenv/bin/buildalyzer +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env python -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This file incorporates work covered by the following license notice: -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed -# with this work for additional information regarding copyright -# ownership. The ASF licenses this file to you under the Apache -# License, Version 2.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.apache.org/licenses/LICENSE-2.0 . -# -import sys -import os - -class CxxTarget: - def __init__(self, line): - self.directory = '' - self.outputfile = '' - self.includeflags = [] - self.cxxflags = [] - self.inputfiles = [] - self.nolink = False - options = line[:-1].split(' ') - self.directory = options.pop(0) - parsing_outputfile = False - for option in options: - if parsing_outputfile: - self.outputfile = option - parsing_outputfile = False - elif option == '-o': - parsing_outputfile = True - elif option == '-c': - self.nolink = True - elif option.startswith('-I'): - self.includeflags.append(CxxFlag(option)) - elif option.startswith('-'): - self.cxxflags.append(CxxFlag(option)) - else: - self.inputfiles.append(option) - self.cxxflags.sort() - self.includeflags.sort() - cxxflags_tmp = dict() - for flag in self.cxxflags: - cxxflags_tmp[flag.name] = flag - self.cxxflags = cxxflags_tmp.values() - includeflags_tmp = dict() - for flag in self.includeflags: - includeflags_tmp[flag.name] = flag - self.includeflags = includeflags_tmp.values() - CxxTargets.by_name[self.getFullOutputname()] = self - def __str__(self): - return '%s' % (self.getFullOutputname()) - def getFullOutputname(self): - return self.directory + '/' + self.outputfile - def __cmp__(self, other): - return cmp(self.getFullOutputname(), other.getFullOutputname()) - -class CxxFlag: - def __init__(self, name): - self.name = name - CxxFlags.by_name[self.name] = self - def __str__(self): - return 'Flag %s' % (self.name) - def __cmp__(self, other): - return cmp(self.name, other.name) - -class CxxFlags: - by_name = dict() - -class CxxTargets: - by_name = dict() - -if __name__ == '__main__': - [CxxTarget(line) for line in sys.stdin.readlines()] - compile_targets = [target for target in CxxTargets.by_name.values() if target.nolink] - link_targets = [target for target in CxxTargets.by_name.values() if not target.nolink] - common_compile_flags = [] - for flag in CxxFlags.by_name.values(): - if sum((flag in target.cxxflags for target in compile_targets)) == len(compile_targets): - common_compile_flags.append(flag) - common_link_flags = [] - for flag in CxxFlags.by_name.values(): - if sum((flag in target.cxxflags for target in compile_targets)) == len(compile_targets): - common_link_flags.append(flag) - - for target in compile_targets: - target.cxxflags = [flag for flag in target.cxxflags if flag not in common_compile_flags] - target.cxxflags.sort() - for target in link_targets: - target.cxxflags = [flag for flag in target.cxxflags if flag not in common_link_flags] - target.cxxflags.sort() - - common_compile_flags.sort() - common_link_flags.sort() - print 'common compile flags: %s' % (' '.join(flag.name for flag in common_compile_flags)) - print 'common link flags: %s' % (' '.join(flag.name for flag in common_link_flags)) - - by_flagset = dict() - for target in CxxTargets.by_name.values(): - flagset = ' '.join((flag.name for flag in target.cxxflags)) - if flagset not in by_flagset: - by_flagset[flagset] = list() - by_flagset[flagset].append(target) - for targetlist in by_flagset.values(): - targetlist.sort() - flagsets = by_flagset.keys() - flagsets.sort() - print '%d compilerflag groups:' % (len(flagsets)) - for flagset in flagsets: - print flagset - for target in by_flagset[flagset]: - print '%s' % (target) - print - - by_flagset = dict() - for target in CxxTargets.by_name.values(): - flagset = ' '.join((flag.name for flag in target.includeflags)) - if flagset not in by_flagset: - by_flagset[flagset] = list() - by_flagset[flagset].append(target) - for targetlist in by_flagset.values(): - targetlist.sort() - flagsets = by_flagset.keys() - flagsets.sort() - print '%d include flag groups:' % (len(flagsets)) - for flagset in flagsets: - print flagset - for target in by_flagset[flagset]: - print '%s' % (target) - print - - print 'sources:' - by_name = dict() - for target in CxxTargets.by_name.values(): - by_name[os.path.basename(target.outputfile)] = target - names = by_name.keys() - names.sort() - for target in CxxTargets.by_name.values(): - if len(target.inputfiles) > 1: - objects = [os.path.basename(object) for object in target.inputfiles] - sources = list() - for object in objects: - if object in by_name: - sources.append(by_name[object].inputfiles[0]) - else: - sources.append('!!!!' + object) - sources.sort() - print '%s %s' % (target.getFullOutputname(), ' '.join(sources)) |