Source code for pymake.cmds.mfpymakecli

#!/usr/bin/env python3
"""Download and build USGS MODFLOW and related programs.

This script originates from pymake: https://github.com/modflowpy/pymake
It requires Python 3.6 or later, and has no dependencies.
"""
import sys
from pathlib import Path

from pymake.pymake_base import main as pymake_main
from pymake.pymake_parser import parser

__all__ = ["main"]
__license__ = "CC0"


[docs] def main() -> None: """mfpymake command line interface Returns ------- None """ # Show meaningful examples at bottom of help prog = Path(sys.argv[0]).stem examples = ( "Examples:\n\n" + "Compile MODFLOW 6 from the root directory containing the \n" + "source files in subdirectories in the src/ subdirectory:\n\n" + f"$ {prog} src/ mf6 --subdirs\n\n" + "Compile MODFLOW 6 in the bin subdirectory using the Intel \n" + "Fortran compiler from the root directory containing the source \n" + "files in subdirectories in the the src/ subdirectory:\n\n" + f"$ {prog} src/ mf6 --subdirs -fc ifort --appdir bin\n" ) # get the arguments args = parser(examples=examples) # run pymake main try: pymake_main( args.srcdir, args.target, fc=args.fc, cc=args.cc, makeclean=args.makeclean, expedite=args.expedite, dryrun=args.dryrun, double=args.double, debug=args.debug, include_subdirs=args.subdirs, fflags=args.fflags, cflags=args.cflags, arch=args.arch, makefile=args.makefile, srcdir2=args.commonsrc, extrafiles=args.extrafiles, excludefiles=args.excludefiles, sharedobject=args.sharedobject, appdir=args.appdir, verbose=args.verbose, inplace=args.inplace, networkx=args.networkx, meson=args.meson, mesondir=args.mesondir, ) except (EOFError, KeyboardInterrupt): sys.exit(f" cancelling '{sys.argv[0]}'")
if __name__ == "__main__": main()