forked from ESMCI/cime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuildlib.gptl
executable file
·64 lines (48 loc) · 2.12 KB
/
buildlib.gptl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python
from standard_script_setup import *
from CIME.utils import run_bld_cmd_ensure_logging
from CIME.case import Case
from CIME.build import get_standard_makefile_args
logger = logging.getLogger(__name__)
def parse_command_line(args, description):
###############################################################################
parser = argparse.ArgumentParser(
usage="""\n{0} [--debug]
OR
{0} --verbose
OR
{0} --help
\033[1mEXAMPLES:\033[0m
\033[1;32m# Run \033[0m
> {0}
""" .format (os.path.basename(args[0])),
description=description,
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
CIME.utils.setup_standard_logging_options(parser)
parser.add_argument("buildroot",
help="build path root")
parser.add_argument("installpath",
help="install path ")
parser.add_argument("caseroot", nargs="?", default=os.getcwd(),
help="Case directory to build")
args = CIME.utils.parse_args_and_handle_standard_logging_options(args, parser)
return args.buildroot, args.installpath, args.caseroot
def buildlib(bldroot, installpath, case):
###############################################################################
caseroot = case.get_value("CASEROOT")
gptl_dir = os.path.join(case.get_value("CIMEROOT"), "src", "share", "timing")
gmake_opts = "-f {gptl}/Makefile install -C {bldroot} MACFILE={macfile} MODEL=gptl COMP_NAME=gptl GPTL_DIR={gptl} GPTL_LIBDIR={bldroot}"\
" SHAREDPATH={install} {stdargs} "\
.format(gptl=gptl_dir, bldroot=bldroot, macfile=os.path.join(caseroot,"Macros.make"),
install=installpath, stdargs=get_standard_makefile_args(case, shared_lib=True))
gmake_cmd = case.get_value("GMAKE")
# This runs the gptl make command
cmd = "{} {}".format(gmake_cmd, gmake_opts)
run_bld_cmd_ensure_logging(cmd, logger)
def _main(argv, documentation):
bldroot, installpath, caseroot = parse_command_line(argv, documentation)
with Case(caseroot) as case:
buildlib(bldroot, installpath, case)
if (__name__ == "__main__"):
_main(sys.argv, __doc__)