def __getitem__(self, key): '''Checks for the key locally, and if not found consults the parent. Returns the value of the Arg. - If the value has not been set, the user will be prompted for input''' if self.dict_has_key(key): self.writeLogLine('__getitem__: ' + key + ' has local type') pass elif not self.parent is None: self.writeLogLine('__getitem__: Checking parent value') if self.send(key, operation='has_key'): self.writeLogLine('__getitem__: Parent has value') return self.send(key) else: self.writeLogLine('__getitem__: Checking parent type') arg = self.send(key, operation='getType') if not arg: self.writeLogLine('__getitem__: Parent has no type') arg = nargs.Arg(key) try: value = arg.getValue() except AttributeError as e: self.writeLogLine( '__getitem__: Parent had invalid entry: ' + str(e)) arg = nargs.Arg(key) value = arg.getValue() self.writeLogLine('__getitem__: Setting parent value ' + str(value)) self.send(key, value, operation='__setitem__') return value else: self.writeLogLine('__getitem__: Setting local type for ' + key) dict.__setitem__(self, key, nargs.Arg(key)) #self.save() self.writeLogLine('__getitem__: Setting local value for ' + key) return dict.__getitem__(self, key).getValue()
def setupHelp(self, help): import nargs help.addArgument('PETSc', '-with-autoreconf=<prog>', nargs.Arg(None, 'autoreconf', 'Specify autoreconf')) help.addArgument('PETSc', '-with-libtoolize=<prog>', nargs.Arg(None, 'libtoolize', 'Specify libtoolize')) return
def setupHelp(self, help): import nargs help = config.base.Configure.setupHelp(self, help) searchdirs = [] packagedirs = [] home = os.getenv('HOME') if home and os.path.isdir(home): packagedirs.append(home) searchdirs.append(home) list = self.listDirs('/opt/ibmcmp/vacpp/','[0-9.]*/bin') if list: searchdirs.append(list[-1]) list = self.listDirs('/opt/ibmcmp/xlf/','[0-9.]*/bin') if list: searchdirs.append(list[-1]) list = self.listDirs('/opt/','intel_cc_[0-9.]*/bin') if list: searchdirs.append(list[-1]) list = self.listDirs('/opt/','intel_fc_[0-9.]*/bin') if list: searchdirs.append(list[-1]) help.addArgument('Framework', '-configModules', nargs.Arg(None, None, 'A list of Python modules with a Configure class')) help.addArgument('Framework', '-ignoreCompileOutput=<bool>', nargs.ArgBool(None, 1, 'Ignore compiler output')) help.addArgument('Framework', '-ignoreLinkOutput=<bool>', nargs.ArgBool(None, 1, 'Ignore linker output')) help.addArgument('Framework', '-ignoreWarnings=<bool>', nargs.ArgBool(None, 0, 'Ignore compiler and linker warnings')) help.addArgument('Framework', '-doCleanup=<bool>', nargs.ArgBool(None, 1, 'Delete any configure generated files (turn off for debugging)')) help.addArgument('Framework', '-with-alternatives=<bool>', nargs.ArgBool(None, 0, 'Provide a choice among alternative package installations')) help.addArgument('Framework', '-search-dirs', nargs.Arg(None, searchdirs, 'A list of directories used to search for executables')) help.addArgument('Framework', '-package-dirs', nargs.Arg(None, packagedirs, 'A list of directories used to search for packages')) help.addArgument('Framework', '-with-external-packages-dir=<dir>', nargs.Arg(None, None, 'Location to install downloaded packages')) help.addArgument('Framework', '-with-batch=<bool>', nargs.ArgBool(None, 0, 'Machine using cross-compilers or a batch system to submit jobs')) help.addArgument('Framework', '-with-file-create-pause=<bool>', nargs.ArgBool(None, 0, 'Add 1 sec pause between config temp file delete/recreate')) return help
def setupHelp(self, help): import nargs config.package.GNUPackage.setupHelp(self, help) help.addArgument( 'MAKE', '-with-make-np=<np>', nargs.ArgInt( None, None, min=1, help='Default number of threads to use for parallel builds')) help.addArgument( 'MAKE', '-with-make-test-np=<np>', nargs.ArgInt( None, None, min=1, help='Default number of threads to use for parallel tests')) help.addArgument( 'MAKE', '-with-make-load=<load>', nargs.ArgReal(None, None, min=1.0, help='max load to use for parallel builds')) help.addArgument( 'MAKE', '-download-make-cc=<prog>', nargs.Arg(None, None, 'C compiler for GNU make configure')) help.addArgument('MAKE', '-with-make-exec=<executable>', nargs.Arg(None, None, 'Make executable to look for')) return
def setupHelp(self, help): import nargs config.package.GNUPackage.setupHelp(self, help) help.addArgument('MAKE', '-with-make-np=<np>', nargs.ArgInt(None, None, min=1, help='Default number of threads to use for parallel builds')) help.addArgument('MAKE', '-download-make-cc=<prog>', nargs.Arg(None, None, 'C compiler for GNU make configure')) help.addArgument('MAKE', '-download-make-configure-options=<options>', nargs.Arg(None, None, 'additional options for GNU make configure')) return
def setupHelp(self, help): import nargs help.addArgument('PETSc', '-PETSC_ARCH=<string>', nargs.Arg(None, None, 'The configuration name')) help.addArgument('PETSc', '-with-petsc-arch=<string>', nargs.Arg(None, None, 'The configuration name')) return
def setupHelp(self, help): import nargs config.package.GNUPackage.setupHelp(self, help) help.addArgument('CMake', '-download-cmake-cc=<prog>', nargs.Arg(None, None, 'C compiler for Cmake configure')) help.addArgument('CMake', '-download-cmake-configure-options=<options>', nargs.Arg(None, None, 'Additional options for Cmake configure')) help.addArgument('CMake', '-with-cmake-exec=<executable>', nargs.Arg(None, None, 'CMake executable to look for')) return
def setupHelp(self, help): import nargs help.addArgument('SourceControl', '-with-hg=<executable>', nargs.Arg(None, 'hg', 'Specify the Mercurial executable')) help.addArgument('SourceControl', '-with-cvs=<executable>', nargs.Arg(None, 'cvs', 'Specify the CVS executable')) help.addArgument('SourceControl', '-with-svn=<executable>', nargs.Arg(None, 'svn', 'Specify the Subversion executable')) return
def setupHelp(self, help): config.package.Package.setupHelp(self, help) import nargs help.addArgument( 'MPI', '-download-mpich=<no,yes,ifneeded,filename>', nargs.ArgDownload(None, 0, 'Download and install MPICH-2')) help.addArgument( 'MPI', '-download-openmpi=<no,yes,ifneeded,filename>', nargs.ArgDownload(None, 0, 'Download and install OpenMPI')) help.addArgument( 'MPI', '-with-mpiexec=<prog>', nargs.Arg(None, None, 'The utility used to launch MPI jobs')) help.addArgument( 'MPI', '-with-mpi-compilers=<bool>', nargs.ArgBool(None, 1, 'Try to use the MPI compilers, e.g. mpicc')) help.addArgument( 'MPI', '-known-mpi-shared=<bool>', nargs.ArgBool( None, None, 'Indicates the MPI libraries are shared (the usual test will be skipped)' )) help.addArgument( 'MPI', '-download-mpich-pm=hydra, gforker or mpd', nargs.Arg(None, 'gforker', 'Launcher for MPI processes')) help.addArgument( 'MPI', '-download-mpich-device=ch3:nemesis or see mpich2 docs', nargs.Arg(None, 'ch3:sock', 'Communicator for MPI processes')) help.addArgument('MPI', '-download-mpich-mpe', nargs.ArgBool(None, 0, 'Install MPE with MPICH')) help.addArgument( 'MPI', '-download-mpich-shared', nargs.ArgBool(None, 0, 'Install MPICH with shared libraries')) return
def setupHelp(self, help): import nargs help.addArgument('Make', '-with-make=<prog>', nargs.Arg(None, 'gmake', 'Specify GNU make')) help.addArgument('Make', '-with-make-np=<np>', nargs.ArgInt(None, None, min=1, help='Default number of threads to use for parallel builds')) help.addArgument('Make', '-download-make=<no,yes,filename>', nargs.ArgDownload(None, 0, 'Download and install GNU make')) help.addArgument('Make', '-download-make-cc=<prog>', nargs.Arg(None, None, 'C compiler for GNU make configure')) help.addArgument('Make', '-download-make-configure-options=<options>', nargs.Arg(None, None, 'additional options for GNU make configure')) return
def setupHelp(self, help): import nargs help = script.Script.setupHelp(self, help) help.addArgument('BuildCheck', '-remoteMachine', nargs.Arg(None, 'terra.mcs.anl.gov', 'The machine on which PETSc logs are stored')) help.addArgument('BuildCheck', '-logDirectory', nargs.Arg(None, os.path.join('/mcs', 'ftp', 'pub', 'petsc','nightlylogs'), 'The directory in which PETSc logs are stored')) help.addArgument('BuildCheck', '-archCompilers', nargs.Arg(None, {}, 'A mapping from architecture names to lists of compiler names')) return help
def setupHelp(self, help): import nargs config.package.GNUPackage.setupHelp(self, help) help.addArgument('CMAKE', '-download-cmake-cc=<prog>', nargs.Arg(None, None, 'C compiler for Cmake configure')) help.addArgument('CMAKE', '-download-cmake-cxx=<prog>', nargs.Arg(None, None, 'C++ compiler for Cmake configure')) help.addArgument('CMAKE', '-with-cmake-exec=<executable>', nargs.Arg(None, None, 'CMake executable to look for')) help.addArgument('CMAKE', '-with-ctest-exec=<executable>', nargs.Arg(None, None, 'Ctest executable to look for')) return
def setupHelp(self, help): '''This method should be overidden to provide help for arguments''' import nargs script.Script.setupHelp(self, help) help.addArgument('SieveTests', '-tests', nargs.Arg(None, ['overlap', 'preallocation'], 'Tests to run', isTemporary = 1)) help.addArgument('SieveTests', '-procs', nargs.Arg(None, [1], 'Communicator sizes to test', isTemporary = 1)) help.addArgument('SieveTests', '-iters', nargs.Arg(None, [1], 'Iterations to test', isTemporary = 1)) return help
def setupHelp(self, help): import nargs script.Script.setupHelp(self, help) help.addArgument('BratuTest', '-num_refine=<int>', nargs.ArgInt(None, 1, 'Number of refinements', min = 0)) help.addArgument('BratuTest', '-bc_type=<dirichlet or neumann>', nargs.Arg(None, 'dirichlet', 'PETSc boundary condition type')) help.addArgument('BratuTest', '-pc_type=<typename>', nargs.Arg(None, 'supportgraph', 'PETSc PC type')) help.addArgument('BratuTest', '-events=[event1,event2,...]', nargs.Arg(None, ['PCSetUp'], 'Events to monitor')) return
def setupHelp(self, help): import nargs help.addArgument( 'PETSc', '-with-precision=<single,double,__float128>', nargs.Arg(None, 'double', 'Specify numerical precision')) help.addArgument( 'PETSc', '-with-scalar-type=<real or complex>', nargs.Arg(None, 'real', 'Specify real or complex numbers')) return
def setupHelp(self, help): import nargs config.package.GNUPackage.setupHelp(self, help) help.addArgument('SOWING', '-download-sowing-cc=<prog>', nargs.Arg(None, None, 'C compiler for sowing configure')) help.addArgument('SOWING', '-download-sowing-cxx=<prog>', nargs.Arg(None, None, 'CXX compiler for sowing configure')) help.addArgument('SOWING', '-download-sowing-cpp=<prog>', nargs.Arg(None, None, 'CPP for sowing configure')) help.addArgument('SOWING', '-download-sowing-cxxcpp=<prog>', nargs.Arg(None, None, 'CXX CPP for sowing configure')) help.addArgument('SOWING', '-download-sowing-configure-options=<options>', nargs.Arg(None, None, 'additional options for sowing configure')) return
def setupHelp(self, help): import nargs # Dec 2016, the __fp16 type is only available with GNU compilers on ARM systems help.addArgument( 'PETSc', '-with-precision=<__fp16,single,double,__float128>', nargs.Arg(None, 'double', 'Specify numerical precision')) help.addArgument( 'PETSc', '-with-scalar-type=<real or complex>', nargs.Arg(None, 'real', 'Specify real or complex numbers')) return
def setupHelp(self, help): config.package.GNUPackage.setupHelp(self, help) import nargs help.addArgument( 'MPI', '-download-mpich-pm=<hydra, gforker or mpd>', nargs.Arg(None, 'hydra', 'Launcher for MPI processes')) help.addArgument( 'MPI', '-download-mpich-device=<ch3:nemesis or see MPICH docs>', nargs.Arg(None, None, 'Communicator for MPI processes')) return
def setupHelp(self, help): import nargs help.addArgument( 'Types', '-known-endian=<big or little>', nargs.Arg(None, None, 'Are bytes stored in big or little endian?')) help.addArgument( 'Visibility', '-with-visibility=<bool>', nargs.Arg( None, 0, 'Use compiler visibility flags to limit symbol visibility')) return
def setupHelp(self, help): import nargs config.package.GNUPackage.setupHelp(self, help) help.addArgument('C2HTML', '-download-c2html-cc=<prog>', nargs.Arg(None, None, 'C compiler for c2html')) help.addArgument( 'C2HTML', '-download-c2html-configure-options=<options>', nargs.Arg(None, None, 'additional options for c2html')) help.addArgument( 'C2HTML', '-with-c2html-exec=<executable>', nargs.Arg(None, None, 'c2html executable to look for')) return
def setupHelp(self, help): import nargs help.addArgument('PETSc', '-PETSC_ARCH=<string>', nargs.Arg(None, None, 'The configuration name')) help.addArgument('PETSc', '-with-petsc-arch=<string>', nargs.Arg(None, None, 'The configuration name')) help.addArgument( 'PETSc', '-force=<bool>', nargs.ArgBool( None, 0, 'Bypass configure hash caching, and run to completion')) return
def setupArguments(self, argDB): '''Setup types in the argument database''' import nargs argDB = args.ArgumentProcessor.setupArguments(self, argDB) argDB.setType('log', nargs.Arg(None, 'buildsystem.log', 'The filename for the log')) argDB.setType('logAppend', nargs.ArgBool(None, 0, 'The flag determining whether we backup or append to the current log', isTemporary = 1)) argDB.setType('debugLevel', nargs.ArgInt(None, 3, 'Integer 0 to 4, where a higher level means more detail', 0, 5)) argDB.setType('debugSections', nargs.Arg(None, [], 'Message types to print, e.g. [compile,link,hg,install]')) argDB.setType('debugIndent', nargs.Arg(None, ' ', 'The string used for log indentation')) argDB.setType('scrollOutput', nargs.ArgBool(None, 0, 'Flag to allow output to scroll rather than overwriting a single line')) argDB.setType('noOutput', nargs.ArgBool(None, 0, 'Flag to suppress output to the terminal')) return argDB
def setupHelp(self, help): import nargs,datetime help = script.Script.setupHelp(self, help) help.addArgument('BuildCheck', '-remoteMachine', nargs.Arg(None, 'login.mcs.anl.gov', 'The machine on which PETSc logs are stored')) help.addArgument('BuildCheck', '-logDirectory', nargs.Arg(None, os.path.join('/mcs', 'ftp', 'pub', 'petsc','nightlylogs'), 'The directory in which PETSc logs are stored')) help.addArgument('BuildCheck', '-archCompilers', nargs.Arg(None, {}, 'A mapping from architecture names to lists of compiler names')) help.addArgument('BuildCheck', '-blameMail', nargs.ArgBool(None, 1, 'Generate blame emails')) help.addArgument('BuildCheck', '-blameMailPost', nargs.ArgBool(None, 1, 'Post (send) blame emails')) help.addArgument('BuildCheck', '-ignoreDeprecated', nargs.ArgBool(None, 1, 'Ignore deprecated warnings')) help.addArgument('BuildCheck', '-ignorePragma', nargs.ArgBool(None, 1, 'Ignore unknown pragma')) help.addArgument('BuildCheck', '-ignoreNote', nargs.ArgBool(None, 1, 'Ignore note warnings')) help.addArgument('BuildCheck', '-blameMailDate', nargs.Arg(None, str(datetime.date.today()), 'Date given in blame mail subject')) help.addArgument('BuildCheck', '-buildBranch', nargs.Arg(None, '', 'Check build logs coresponding to given branch name')) return help
def setupHelp(self, help): import nargs help.addArgument( 'Compiler Flags', '-optionsModule=<module name>', nargs.Arg( None, 'config.compilerOptions', 'The Python module used to determine compiler options and versions' )) help.addArgument( 'Compiler Flags', '-with-debugging=<bool>', nargs.ArgBool(None, 1, 'Specify debugging version of libraries')) help.addArgument( 'Compiler Flags', '-C_VERSION=<string>', nargs.Arg(None, 'Unknown', 'The version of the C compiler')) help.addArgument( 'Compiler Flags', '-CXX_VERSION=<string>', nargs.Arg(None, 'Unknown', 'The version of the C++ compiler')) help.addArgument( 'Compiler Flags', '-FC_VERSION=<string>', nargs.Arg(None, 'Unknown', 'The version of the Fortran compiler')) help.addArgument( 'Compiler Flags', '-CUDA_VERSION=<string>', nargs.Arg(None, 'Unknown', 'The version of the CUDA compiler')) help.addArgument( 'Compiler Flags', '-COPTFLAGS=<string>', nargs.Arg( None, None, 'Override the debugging/optimization flags for the C compiler') ) help.addArgument( 'Compiler Flags', '-CXXOPTFLAGS=<string>', nargs.Arg( None, None, 'Override the debugging/optimization flags for the C++ compiler' )) help.addArgument( 'Compiler Flags', '-FOPTFLAGS=<string>', nargs.Arg( None, None, 'Override the debugging/optimization flags for the Fortran compiler' )) help.addArgument( 'Compiler Flags', '-CUDAOPTFLAGS=<string>', nargs.Arg( None, None, 'Override the debugging/optimization flags for the CUDA compiler' )) # not sure where to put this, currently gcov is handled in ../compilerOptions.py help.addArgument( 'Compiler Flags', '-with-gcov=<bool>', nargs.ArgBool(None, 0, 'Specify that GNUs coverage tool gcov is used')) return
def setupHelp(self, help): import nargs config.package.Package.setupHelp(self, help) help.addArgument( 'CUDA', '-with-cuda-arch=<arch>', nargs.Arg(None, None, 'Target architecture for nvcc, e.g. sm_20')) return
def setupHelp(self, help): import nargs script.Script.setupHelp(self, help) help.addArgument( 'Installer', '-destDir=<path>', nargs.Arg(None, None, 'Destination Directory for install')) return
def setupHelp(self, help): import nargs help.addArgument( 'PETSc', '-with-memalign=<4,8,16,32,64>', nargs.Arg(None, '16', 'Specify alignment of arrays allocated by PETSc')) return
def setupHelp(self, help): import nargs help.addArgument( 'PETSc', '-PETSC_DIR=<root-dir>', nargs.Arg(None, None, 'The root directory of the PETSc installation')) return
def setupHelp(self, help): config.package.Package.setupHelp(self, help) import nargs help.addArgument( 'PETSC4PY', '-download-petsc4py-python=<prog>', nargs.Arg(None, None, 'Use this python program to build petsc4py')) return
def setupHelp(self, help): config.package.Package.setupHelp(self,help) import nargs help.addArgument('OpenBLAS', '-download-openblas-64-bit-blas-indices', nargs.ArgBool(None, 0, 'Use 64 bit integers for OpenBLAS (deprecated: use --with-64-bit-blas-indices')) help.addArgument('OpenBLAS', '-download-openblas-use-pthreads', nargs.ArgBool(None, 0, 'Use pthreads for OpenBLAS')) help.addArgument('OpenBLAS', '-download-openblas-make-options=<options>', nargs.Arg(None, None, 'additional options for building OpenBLAS')) return