add argparse support to Install.py in message lib
This commit is contained in:
@ -6,7 +6,11 @@
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import sys,os,re,subprocess
|
import sys,os,re,subprocess
|
||||||
sys.path.append('..')
|
sys.path.append('..')
|
||||||
from install_helpers import error,get_cpus,fullpath,which
|
from install_helpers import get_cpus,fullpath
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
parser = ArgumentParser(prog='Install.py',
|
||||||
|
description="LAMMPS library build wrapper script")
|
||||||
|
|
||||||
# help message
|
# help message
|
||||||
|
|
||||||
@ -16,46 +20,30 @@ Syntax from src dir: make lib-message args="-m"
|
|||||||
Syntax from lib dir: python Install.py -m
|
Syntax from lib dir: python Install.py -m
|
||||||
or: python Install.py -s -z
|
or: python Install.py -s -z
|
||||||
|
|
||||||
specify zero or more options, order does not matter
|
|
||||||
|
|
||||||
-m = parallel build of CSlib library
|
|
||||||
-s = serial build of CSlib library
|
|
||||||
-z = build CSlib library with ZMQ socket support, default = no ZMQ support
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
make lib-message args="-m -z" # build parallel CSlib with ZMQ support
|
make lib-message args="-m -z" # build parallel CSlib with ZMQ support
|
||||||
make lib-message args="-s" # build serial CSlib with no ZMQ support
|
make lib-message args="-s" # build serial CSlib with no ZMQ support
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# parse args
|
pgroup = parser.add_mutually_exclusive_group()
|
||||||
|
pgroup.add_argument("-m", "--mpi", action="store_true",
|
||||||
|
help="parallel build of CSlib with MPI")
|
||||||
|
pgroup.add_argument("-s", "--serial", action="store_true",
|
||||||
|
help="serial build of CSlib")
|
||||||
|
parser.add_argument("-z", "--zmq", default=False, action="store_true",
|
||||||
|
help="build CSlib with ZMQ socket support, default ()")
|
||||||
|
|
||||||
args = sys.argv[1:]
|
args = parser.parse_args()
|
||||||
nargs = len(args)
|
|
||||||
if nargs == 0: error(help=help)
|
|
||||||
|
|
||||||
mpiflag = False
|
# print help message and exit, if neither build nor path options are given
|
||||||
serialflag = False
|
if args.mpi == False and args.serial == False:
|
||||||
zmqflag = False
|
parser.print_help()
|
||||||
|
sys.exit(help)
|
||||||
|
|
||||||
iarg = 0
|
mpiflag = args.mpi
|
||||||
while iarg < nargs:
|
serialflag = args.serial
|
||||||
if args[iarg] == "-m":
|
zmqflag = args.zmq
|
||||||
mpiflag = True
|
|
||||||
iarg += 1
|
|
||||||
elif args[iarg] == "-s":
|
|
||||||
serialflag = True
|
|
||||||
iarg += 1
|
|
||||||
elif args[iarg] == "-z":
|
|
||||||
zmqflag = True
|
|
||||||
iarg += 1
|
|
||||||
else: error(help=help)
|
|
||||||
|
|
||||||
if (not mpiflag and not serialflag):
|
|
||||||
error("Must use either -m or -s flag")
|
|
||||||
|
|
||||||
if (mpiflag and serialflag):
|
|
||||||
error("Cannot use -m and -s flag at the same time")
|
|
||||||
|
|
||||||
# build CSlib
|
# build CSlib
|
||||||
# copy resulting lib to cslib/src/libmessage.a
|
# copy resulting lib to cslib/src/libmessage.a
|
||||||
|
|||||||
Reference in New Issue
Block a user