Esempio n. 1
0
def genHellos(outFilename, overWrite = False, python = False):
    if python:
        if not outFilename.endswith(".py"):
            outFilename = outFilename + ".py"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception(CT.boldRed("File ") + CT.boldBlack(outFilename) + CT.boldRed(" already exists, use --overWrite to over write it"))
        genPyHello(outFilename)
        #rwx to user and group, r-x to everyone
        fd = os.open( outFilename, os.O_RDONLY )
        os.fchmod( fd, 0o775)
        os.close( fd )
        print((CT.boldGreen("Now run")))
        print(("./" + outFilename + " "))
        print((CT.boldGreen("or")))
        print(("./" + outFilename + " --name Nick"))
    else:
        if not outFilename.endswith(".cpp"):
            outFilename = outFilename + ".cpp"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception("File " + outFilename + " already exists, use --overWrite to over write it")
        genCppHello(outFilename)
        print((CT.boldGreen("Now run")))
        print(("g++ -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++"))
        print ("./hello")
        print((CT.boldGreen("or run")))
        #mac
        if Utils.isMac():
            print(("clang++ " + outFilename + " -o hello"))
        else:
            print(("clang++-3.6 -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++"))
        print ("./hello")
def genHellos(outFilename, overWrite = False, python = False):
    if python:
        if not outFilename.endswith(".py"):
            outFilename = outFilename + ".py"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception(CT.boldRed("File ") + CT.boldBlack(outFilename) + CT.boldRed(" already exists, use --overWrite to over write it"))
        genPyHello(outFilename)
        #rwx to user and group, r-x to everyone
        fd = os.open( outFilename, os.O_RDONLY )
        os.fchmod( fd, 0775)
        os.close( fd )
        print (CT.boldGreen("Now run"))
        print ("./" + outFilename + " ")
        print (CT.boldGreen("or"))
        print ("./" + outFilename + " --name Nick")
    else:
        if not outFilename.endswith(".cpp"):
            outFilename = outFilename + ".cpp"
        if os.path.exists(outFilename) and not overWrite:
            raise Exception("File " + outFilename + " already exists, use --overWrite to over write it")
        genCppHello(outFilename)
        print (CT.boldGreen("Now run"))
        print ("g++ -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++")
        print ("./hello")
        print (CT.boldGreen("or run"))
        #mac
        if Utils.isMac():
            print ("clang++ " + outFilename + " -o hello")
        else:
            print ("clang++-3.6 -std=c++11 " + outFilename + " -o hello #-std=c++11 needed for cstdint include in libstdc++")
        print ("./hello")
Esempio n. 3
0
 def copyMakefile(self, distDir, overWrite=False):
     distDir = os.path.join(self.projectDir, distDir)
     if not os.path.exists(distDir):
         print(CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "Makefile")) and not overWrite:
         raise Exception("Error, file " + os.path.join(distDir, "Makefile") + " already exist, use --overWrite overwrite Makefile")
     shutil.copy(os.path.join(self.setupFrom, "scripts/cppMakefiles/Makefile"), os.path.join(distDir, "Makefile"))
Esempio n. 4
0
 def copySetUp(self, distDir, overWrite=False):
     if not os.path.exists(distDir):
         print(CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "setup.py")) and not overWrite:
         raise Exception("Error, file " + os.path.join(distDir, "setup.py") + " already exist, use --overWrite overwrite setup.py")
     shutil.copy(os.path.join(self.setupFrom, "setup.py"), os.path.join(distDir, "setup.py"))    
     self.copyDir(os.path.join(self.setupFrom ,"scripts"), os.path.join(distDir,"scripts"), overWrite)
Esempio n. 5
0
def parseForHeaders(args):
    headers = set()
    unknowns = []

    for arg in args:
        if arg in objToHeader:
            headers.add(objToHeader[arg])
        elif ("std::" + arg) in objToHeader:
            headers.add(objToHeader["std::" + arg])
        else:
            unknowns.append(arg)
    print(CT.boldRed("Unknowns:"))
    for u in unknowns:
        print(CT.boldBlack("unknown which header file contains"), CT.boldRed(u))

    if headers:
        print(CT.boldGreen("found headers:"))
        for h in sorted(headers):
            print(h)
Esempio n. 6
0
    def setup(self):
        if self.args.forceUpdate:
            for set in self.setUpsNeeded.keys():
                if not set in self.setUps.keys():
                    print CT.boldBlack( "Unrecognized option ") + CT.boldRed(set)
                else:
                    self.rmDirsForLib(set)
                        
        for set in self.setUpsNeeded.keys():
            if not set in self.setUps.keys():
                print CT.boldBlack( "Unrecognized option ") + CT.boldRed(set)
            else:
                self.__setup(set, self.setUps[set])

        for p in self.installed:
            print p, CT.boldGreen("installed")

        for p in self.failedInstall:
            print  p, CT.boldRed("failed to install")
Esempio n. 7
0
def parseForHeaders(args):
    headers = set()
    unknowns = []

    for arg in args:
        if arg in objToHeader:
            headers.add(objToHeader[arg])
        elif ("std::" + arg) in objToHeader:
            headers.add(objToHeader["std::" + arg])
        else:
            unknowns.append(arg)
    print(CT.boldRed("Unknowns:"))
    for u in unknowns:
        print(CT.boldBlack("unknown which header file contains"),
              CT.boldRed(u))

    if headers:
        print(CT.boldGreen("found headers:"))
        for h in sorted(headers):
            print(h)
Esempio n. 8
0
 def rmDirsForLib(self,lib):
     if lib not in self.setUps:
         print CT.boldBlack( "Unrecognized lib: ") + CT.boldRed(lib)
     else:
         p = self.__path(lib)
         if p.build_dir:
             print "Removing " + CT.boldBlack(p.build_dir)
             Utils.rm_rf(p.build_dir)
         if p.local_dir:
             print "Removing " + CT.boldBlack(p.local_dir)
             Utils.rm_rf(p.local_dir)
Esempio n. 9
0
 def copyMakefile(self, distDir, overWrite=False):
     distDir = os.path.join(self.projectDir, distDir)
     if not os.path.exists(distDir):
         print(
             CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "Makefile")) and not overWrite:
         raise Exception(
             "Error, file " + os.path.join(distDir, "Makefile") +
             " already exist, use --overWrite overwrite Makefile")
     shutil.copy(
         os.path.join(self.setupFrom, "scripts/cppMakefiles/Makefile"),
         os.path.join(distDir, "Makefile"))
Esempio n. 10
0
 def copySetUp(self, distDir, overWrite=False):
     if not os.path.exists(distDir):
         print(
             CT.boldGreen(distDir) + CT.boldRed(" doesn't exist skipping"))
         return
     if os.path.exists(os.path.join(distDir, "setup.py")) and not overWrite:
         raise Exception(
             "Error, file " + os.path.join(distDir, "setup.py") +
             " already exist, use --overWrite overwrite setup.py")
     shutil.copy(os.path.join(self.setupFrom, "setup.py"),
                 os.path.join(distDir, "setup.py"))
     self.copyDir(os.path.join(self.setupFrom, "scripts"),
                  os.path.join(distDir, "scripts"), overWrite)
Esempio n. 11
0
def main():
    args = parse_args()
    s = Setup(args)
    ccWhich = Utils.which(s.CC)
    cxxWhich = Utils.which(s.CXX)
    cmakeWhich = Utils.which("cmake")
    if not ccWhich or not cxxWhich or not cmakeWhich:
        if not ccWhich:
            print CT.boldRed("Could not find c compiler " + CT.purple + s.CC)
            if args.compfile:
                print "Change CC in " + args.compfile
            else:
                print "Can supply another c compiler by using -CC [option] or by defining bash environmental CC "
            print ""
        if not cxxWhich:
            print CT.boldRed("Could not find c++ compiler " + CT.purple + s.CXX)
            if args.compfile:
                print "Change CXX in " + args.compfile
            else:
                print "Can supply another c++ compiler by using -CXX [option] or by defining bash environmental CXX "
            print ""
        if not cmakeWhich:
            print CT.boldRed("Could not find " + CT.purple + "cmake")
            if Utils.isMac():
                print "If you have brew install via, brew update && brew install cmake, otherwise you can follow instructions from http://www.cmake.org/install/"
            else:
                print "On ubuntu to install latest cmake do the following"
                print "sudo add-apt-repository ppa:george-edison55/cmake-3.x"
                print "sudo apt-get update"
                print "sudo apt-get install cmake"
        return 1
        
    
    if(args.instRPackageName):
        s.installRPackageName(args.instRPackageName[0])
        return 0
    if(args.instRPackageSource):
        s.installRPackageSource(args.instRPackageSource[0])
        return 0
    if args.updateBibProjects:
        projectsSplit = args.updateBibProjects.split(",")
        s.updateBibProjects(projectsSplit)
        return 0
    if args.printLibs:
        s.printAvailableSetUps()
    elif args.addBashCompletion:
        if(os.path.isdir("./bashCompletes")):
            cmd = "cat bashCompletes/* >> ~/.bash_completion"
            Utils.run(cmd)
        if(os.path.isdir("./bash_completion.d")):
            cmd = "cat bash_completion.d/* >> ~/.bash_completion"
            Utils.run(cmd)
    else:
        if len(s.setUpsNeeded) == 0:
            s.printAvailableSetUps()
            return 1
        else:
            s.setup()
            return 0
Esempio n. 12
0
 def __setup(self, name, builder_f):
     if os.path.exists(self.__path(name).local_dir):
         print name, CT.boldGreen("found at ") + CT.boldBlack(self.__path(name).local_dir)
     else:
         print name, CT.boldRed("NOT"), "found; building..."
         try:
             builder_f()
             self.installed.append(name)
         except Exception as inst:
             print type(inst)
             print inst 
             print "failed to install " + name
             self.failedInstall.append(name)
Esempio n. 13
0
 def rm_rf(d):
     """remove directory forcibly"""
     if os.path.exists(d):
         print CT.boldText("rm -rf"), CT.boldRed(d)
         shutil.rmtree(d)
Esempio n. 14
0
 def rm_rf(d):
     '''remove directory forcibly'''
     if os.path.exists(d):
         print CT.boldText("rm -rf"), CT.boldRed(d)
         shutil.rmtree(d)
Esempio n. 15
0
 def rm_rf(d):
     '''remove directory forcibly'''
     if os.path.exists(d):
         print(CT.boldText("rm -rf"), CT.boldRed(d))
         shutil.rmtree(d)