summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorBjoern Michaelsen <bjoern.michaelsen@canonical.com>2013-08-22 13:06:59 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2013-08-22 13:06:59 +0200
commite830fa3f496fd4d3ff53d8d9ca5916e4023d055a (patch)
tree58a039b0a8f27bbea38a1eff4c64495c13d280ca /solenv
parentbc45700b1b8a0579502e09b3a7d6ec4c0c96dc8b (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/buildalyzer155
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))