Esempio n. 1
0
    def env(self, rel_dir=None):

        '''Return dictionary of env for the given project and optional
        package.  It conists of the environment after sourcing the top
        level projects/setup.sh followed by the setup.sh in the given
        package package if rel_dir is given.  rel_dir can be absolute
        path or relative from the projects/ directory.  It can include
        or omit the final /cmt sub directory.'''

        from command import source
        import fs

        environ = self.cfg_environ()

        #print 'projects.env(): Source %s/setup.sh'%fs.projects()
        environ = source('./setup.sh', env=environ, dir=fs.projects())
        if not rel_dir: 
            rel_dir = self.rel_pkg()
            #print 'Using rel_dir =', rel_dir

        if not rel_dir: 
            #print 'No rel_dir given'
            return environ

        cmtdir = os.path.join(self.proj_dir(), rel_dir)
        if cmtdir.rfind('/cmt') < 0: cmtdir = os.path.join(cmtdir,'cmt')
        import cmt
        if not os.path.exists(cmtdir+'/setup.sh'):
            cmt.cmt('config', environ=environ, dir=cmtdir)
            pass
        #print 'projects.env(): Source %s/setup.sh'%cmtdir
        environ = source('./setup.sh', env=environ, dir=cmtdir)
        return environ
Esempio n. 2
0
 def _fix_projects(self):
     import fs,os,cmt
     from command import source
     fs.goto(os.path.join(self.dstdir,'projects'))
     environ = source('./setup.sh')
     for pobj in self.project_objects:
         pdir = os.path.join(self.dstdir,'projects',pobj.name,pobj.rel_pkg(),'cmt')
         cmt.cmt("config",environ=environ,dir=pdir)
         pkgenv = source('./setup.sh',env=environ,dir=pdir)
         cmt.cmt("br cmt config",environ=pkgenv,dir=pdir)
     fs.goback()
Esempio n. 3
0
    def build_package(self,pkg,cmds = None):
        '''
    for cmd in get config make install
    do
        echo "$pkg: running \"cmt pkg_$cmd\""
        cmt pkg_$cmd
        check_cmd
    done
        '''
        import fs
        fs.assure(os.path.join(fs.external(),'tarFiles'))
        fs.assure(os.path.join(fs.external(),'build/LCG'))
        
        bdir = self.builder_directory(pkg)
        from exception import InconsistentState
        if bdir is None: 
            raise InconsistentState('No builder directory for "%s"'%pkg)
        
        if not cmds:
            print 'Building %s in %s'%(pkg,bdir)

        pkg = os.path.basename(bdir)
        cmtdir = os.path.join(bdir,'cmt')

        envdir = os.path.join('LCG_Builders',pkg)
        environ = self.env(envdir)

        import fs
        fs.goto(cmtdir)
        
        import cmt
        if not cmds: cmds = ['get','config','make','install']
        for what in cmds:
            print '\t%s'%what
            cmt.cmt('pkg_%s'%what, environ=environ, dir=cmtdir)

        
        fs.goback()
        return