CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Utils.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 class LoadPrerequisiteSource(cms.Source):
4  """The class is a Source which loads prerequisites libraries in advance.
5  This is done to make sure we can load libraries containing common blocks in
6  the correct order.
7  """
8  def setPrerequisites(self, *libs):
9  self.__dict__["libraries"] = libs
10 
11  def insertInto(self, parameterSet, myname):
12  from ctypes import LibraryLoader, CDLL
13  import platform
14  loader = LibraryLoader(CDLL)
15  ext = platform.uname()[0] == "Darwin" and "dylib" or "so"
16  [loader.LoadLibrary("lib%s.%s" % (l, ext)) for l in self.libraries]
17  super(LoadPrerequisiteSource,self).insertInto(parameterSet,myname)