if __name__ == '__main__': optlist, args = getopt.getopt(sys.argv[1:], '', ['exclude=', 'has_finterface=']) if len(args) != 5: raise RuntimeError('Syntax: listclasses.py <path> <interface> ' '<definition-file> <makefile> <config-file> ' '[--exclude=<exclude list>] ' '[--has_finterface=<interface list>]') path = args[0] interface = args[1] deffn = args[2] mkfn = args[3] cfgfn = args[4] exclude_list = [ ] finterface_list = [ ] for key, value in optlist: if key == '--exclude': exclude_list = value.split(',') elif key == '--has_finterface': finterface_list = value.split(',') metadata = scanallmeta(path) write_interface_info(metadata, interface, finterface_list, exclude_list, deffn, mkfn, cfgfn)
'src/notb', 'src/notb/dense', ] lib_macros = [ ( 'NO_BIND_C_OPTIONAL', None ), ( 'MDCORE_PYTHON', None ), ] ### # # Scan all metadata and get list of potentials # #print 'Scanning f90 metadata in directory {0}...'.format(srcdir) metadata = scanallmeta(['{0}/{1}'.format(srcdir, x) for x in ['notb', 'potentials', 'potentials_nonfree']]) #print 'Writing factories...' # Coulomb modules mods1, fns1 = get_module_list(metadata, 'coulomb', include_list = inc_dirs) if sys.version_info >= (3,0): lib_srcs += fns1 else: lib_srcs += [ fn.encode('ascii') for fn in fns1 ] print('* Found the following Coulomb modules:') for f90name, f90type, name, features, methods in mods1: print(' {0}'.format(name))
'%s/python/c/neighbors.c' % (srcdir), '%s/python/c/coulomb.c' % (srcdir), '%s/python/c/coulomb_callback.c' % (srcdir), '%s/python/c/potential.c' % (srcdir), '%s/python/c/analysis.c' % (srcdir), '%s/python/c/atomisticamodule.c' % (srcdir), ] ### # # Scan all metadata and get list of potentials # #print 'Scanning f90 metadata in directory {0}...'.format(srcdir) metadata = scanallmeta(srcdir) #print 'Writing factories...' # Coulomb modules mods1, fns1 = get_module_list(metadata, 'coulomb', finterface_list = [ 'register_data', 'set_Hubbard_U' ]) lib_srcs += fns1 # Write coulomb factory write_coulomb_factory_f90(mods1, 'coulomb', 'build/coulomb_factory_f90.f90') write_coulomb_factory_c(mods1, 'coulomb', '%s/python/c/coulomb_factory.template.c' \ % (srcdir),
'src/notb', 'src/notb/dense', ] lib_macros = [ ( 'NO_BIND_C_OPTIONAL', None ), ( 'PYTHON', None ), ] ### # # Scan all metadata and get list of potentials # #print 'Scanning f90 metadata in directory {0}...'.format(srcdir) metadata = scanallmeta(['{0}/{1}'.format(srcdir, x) for x in ['notb', 'potentials', 'potentials_nonfree']]) #print 'Writing factories...' # Coulomb modules mods1, fns1 = get_module_list(metadata, 'coulomb', include_list = inc_dirs) if sys.version_info >= (3,0): lib_srcs += fns1 else: lib_srcs += [ fn.encode('ascii') for fn in fns1 ] print('* Found the following Coulomb modules:') for f90name, f90type, name, features, methods in mods1: print(' {0}'.format(name))
'{0}/python/c/py_f.c'.format(srcdir), '{0}/python/c/particles.c'.format(srcdir), '{0}/python/c/neighbors.c'.format(srcdir), '{0}/python/c/potential.c'.format(srcdir), '{0}/python/c/analysis.c'.format(srcdir), '{0}/python/c/mdcoremodule.c'.format(srcdir), ] ### # # Scan all metadata and get list of potentials # #print 'Scanning f90 metadata in directory {0}...'.format(srcdir) metadata = scanallmeta(srcdir) #print 'Writing factories...' mods2, fns2 = get_module_list(metadata, 'potentials', finterface_list=['register_data'], exclude_list=[ 'MolecularTightBinding', 'VariableCharge', 'ConstantForce', 'HarmonicHook', 'Harmonic', 'LennardJones', 'Confinement', 'SlidingP', 'FFMTip' ]) lib_srcs += fns2 write_factory_f90(mods2, 'potential', 'build/potentials_factory_f90.f90')