def __init__(self, exename): Builder.__init__(self) self.__exename = exename self.__state = self.EXE_NOT_SEEN self.__exe = None self.__depfinder = None pass
def relate(self, node, digraph, topolist): """ Builder method. As a service (we do not do anthing meaningful with the information ourselves), we remember both the topologically sorted list of the libraries that we depend on, as well as the libraries that we directly depend on. """ Builder.relate(self, node, digraph, topolist) self.__buildinfo_topo_dependent_native_libs = [] self.__buildinfo_direct_dependent_native_libs = [] nodes_with_library = algorithm.nearest_property(digraph=digraph, entrypoint=node, property=self.HaveLibraryProperty()) for n in nodes_with_library: for bi in n.iter_buildinfos(): if type(bi) in (BuildInfo_CLibrary_NativeLocal, BuildInfo_CLibrary_NativeInstalled): self.__buildinfo_direct_dependent_native_libs.append(bi) pass pass pass for n in topolist: for bi in n.iter_buildinfos(): if type(bi) in (BuildInfo_CLibrary_NativeLocal, BuildInfo_CLibrary_NativeInstalled): self.__buildinfo_topo_dependent_native_libs.insert(0, bi) pass pass pass pass
def __init__(self, namefinder, has_undefined_symbols=True): Builder.__init__(self) self.__namefinder = namefinder self.__libname = None self.__libtool_version_info = None self.__has_undefined_symbols = has_undefined_symbols pass
def relate(self, node, digraph, topolist): Builder.relate(self, node, digraph, topolist) self.__have_external_libpath = set() self.__external_libpath = [] self.__have_external_libraries = set() self.__external_libraries = [] for n in topolist: for bi in n.iter_buildinfos_type( BuildInfo_LibraryPath_External_CMake): for p in reversed(bi.libpath()): if p in self.__have_external_libpath: continue self.__have_external_libpath.add(p) self.__external_libpath.insert(0, p) pass pass for bi in n.iter_buildinfos_type(BuildInfo_Library_External_CMake): for l in reversed(bi.libs()): if l in self.__have_external_libraries: continue self.__have_external_libraries.add(l) self.__external_libraries.insert(0, l) pass pass pass pass
def __init__(self): Builder.__init__(self) self.__members = set() # toplogically sorted list of build infos for all libraries # that we depend on. self.__buildinfo_topo_dependent_native_libs = [] # build information for the libraries that we directly depend # on. self.__buildinfo_direct_dependent_native_libs = [] pass
def __init__(self, filename, directory): Builder.__init__(self) self.__filename = filename self.__directory = directory self.__header_builder = None self.__target_directory_builder = None self.__slave = None self.__num_retries = 0 pass
def __init__(self, public, shellmatch=None, regex=None): Builder.__init__(self) self.__shellmatch = shellmatch if regex is not None: self.__regex = re.compile(regex) else: self.__regex = None pass self.__public = public self.__seen_headers = set() self.__id = str(self.__class__) + '(' + str(shellmatch) + ',' + str(regex) + ',' + str(self.__public) + ')' pass
def __init__(self): Builder.__init__(self) # we remember registered files in a dictionary to maintain # uniqueness. NOTE that this object is subject to # pickling/unpickling, and that we still do not implement # versioning. so be careful about changes. self.__registered_files = set() # the set of files that have been registered in a previous # instance. None means that nothing has been registered. self.__previous_registered_files = None pass
def __init__(self, regex, prefixdir, datadir): assert (datadir is None or prefixdir is None and \ datadir is not None or prefixdir is not None), \ 'prefixdir: '+str(prefixdir) + ', datadir: '+str(datadir) Builder.__init__(self) self.__regex = regex self.__datadir = datadir self.__prefixdir = prefixdir self.__handled_entries = set() try: self.__compiled_regex = re.compile(regex) except Exception, e: raise Error('Error compiling regex "' + regex + '"', [e])
def __init__(self, name=None, incpath=[], cflags=[], cxxflags=[], cmdlinemacros={}, libpath=[], libs=[]): Builder.__init__(self) self.__name = name self.__incpath = incpath self.__cflags = cflags self.__cxxflags = cxxflags self.__cmdlinemacros = cmdlinemacros self.__libpath = libpath self.__libs = libs pass
def __init__(self): Builder.__init__(self) # only the package root directory will have configure.ac and # acinclude.m4. we will allocate them once we know where we # are. self.__configure_ac = None self.__acinclude_m4 = None # any directory has a Makefile.am ... self.__makefile_am = Makefile_am() # ... and helper that we use to install files intelligently # (well, more or less so). self.__file_installer = FileInstaller() # a flag to generate other builders only once. self.__bursted = False pass
def relate(self, node, digraph, topolist): """ Builder method. Gather the automake specific build information, such as BuildInfo_CLibrary_External. """ Builder.relate(self, node, digraph, topolist) self.__external_libpath = [] self.__have_external_libpath = set() self.__external_libraries = [] for n in topolist: for bi in n.iter_buildinfos_type(BuildInfo_Library_External_AM): key = '.'.join(bi.libpath()) if not key in self.__have_external_libpath: self.__have_external_libpath.add(key) self.__external_libpath.insert(0, bi.libpath()) pass self.__external_libraries.insert(0, bi.libs()) pass pass pass
def __init__(self): Builder.__init__(self) self.__external_cflags = [] self.__external_cmdlinemacros = {} # include path for external modules. this is a list of lists, # of the form # [['-I/dir1'], # ['-I/this/dir/include', '-I/that/dir/include']] # each list has been distributed to us by one module, and we # must not change the order inside the individual lists - they # may be significant, and the distributing modules surely # don't expect us to mess with the order. # the complete list is accompanied with a set which serves us # to sort out duplicates from the beginning. self.__have_external_incpath = set() self.__external_incpath = [] pass
def __init__(self, packagename): Builder.__init__(self) self.__packagename = packagename self.__external_library_builder_created = False pass
def __init__(self): Builder.__init__(self) self.__seen = False pass
def __init__(self, provide): Builder.__init__(self) self.__provide = provide self.__num_rounds = 0 pass
def __init__(self): Builder.__init__(self) self.__round = 0 pass
def __init__(self): Builder.__init__(self) self.handled_entries_ = set() pass
def __init__(self): Builder.__init__(self) self.__exploded = False pass
def __init__(self): Builder.__init__(self) # remember directories that we already saw. self.__recognized_directories = set() pass
def __init__(self): Builder.__init__(self) self.__seen_filenames = set() pass
def __init__(self, exe_builder): Builder.__init__(self) self.__exe_builder = exe_builder pass
def __init__(self): Builder.__init__(self) # { exebuilder: depfinder } self.__library_dependency_finder_by_exe = {} pass
def __init__(self): Builder.__init__(self) self.__requested_calls = [] pass
def __init__(self): Builder.__init__(self) self.seen_buildinfo = False pass
def __init__(self, header_builder): Builder.__init__(self) self.__header_builder = header_builder pass
def __init__(self, use_libtool): Builder.__init__(self) self.__use_libtool = use_libtool pass
def __init__(self, installdir): Builder.__init__(self) self.__installdir = installdir self.__seen_header_builders = set() pass
def __init__(self, packagename): Builder.__init__(self) self.__packagename = packagename self.__bursted = False pass