def METHOD_NAME():
    description = """Given a directory path, and a list of module names,
    copies each module into the dir, if the cam being built has the symbols needed
    for the module to run.  That is: put the right modules into the cam build.
    Used during the build to copy the correct modules into a zip.
    """
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument("dest_dir",
                        help="path to copy modules into, e.g. "
                             "platform/200D.101/zip/ML/modules")
    parser.add_argument("module_names",
                        nargs="*",
                        help="e.g. adv_int edmac")
    args = parser.METHOD_NAME()
    if len(args.module_names) == 0:
        print("No module names given")
        sys.exit(1)
    dest_dir = args.dest_dir
    if not os.path.isdir(dest_dir):
        print("dest_dir didn't exist or wasn't a dir: '%s'"
              % dest_dir)
        sys.exit(2)
    # We assume this is only called from platform dirs (is this true?)
    # with INSTALL_MODULES_DIR as target and that has this form:
    # <full path>/platform/200D.101/zip/ML/modules
    path_components = dest_dir.split(os.path.sep)
    if "platform" not in path_components:
        print("dest_dir didn't contain 'platform' dir: '%s'" % dest_dir)
        sys.exit(3)
    platform_index = path_components.index("platform")
    cam_dir = path_components[platform_index + 1]
    if len(cam_dir.split(".")) != 2:
        # We expect cam dirs to have a dot separating cam from FW version.
        # Not a great test but does work at present.
        print("cam dir looked weird: '%s'" % cam_dir)
        sys.exit(4)
    cam_dir = os.path.join(dest_dir, "..", "..", "..")
    if "magiclantern.sym" not in os.listdir(cam_dir):
        # This happens for ML_SRC_PROFILE = minimal builds.
        # SJE TODO: make minimal builds not try to copy modules?
        # For now, we simply don't try.  This might cause problems
        # if a cam dir should produce the sym file but failed to do so?
        print("No magiclantern.sym in cam dir, can't include modules: '%s'"
              % dest_dir)
        sys.exit(0)
    args.cam_dir = os.path.relpath(cam_dir)
    return args