def METHOD_NAME(self, genpybind_parse=None, resource_dir=None):
    args = []
    relative_includes = self._inputs_as_relative_includes()
    is_cxx = "cxx" in self.features
    # options for genpybind
    args.extend(["--genpybind-module", self.module])
    if self.genpybind_tags:
        args.extend(["--genpybind-tag"] + self.genpybind_tags)
    if relative_includes:
        args.extend(["--genpybind-include"] + relative_includes)
    if genpybind_parse:
        args.extend(["--genpybind-parse", genpybind_parse])
    args.append("--")
    # headers to be processed by genpybind
    args.extend(node.abspath() for node in self.inputs)
    args.append("--")
    # options for clang/genpybind-parse
    args.append("-D__GENPYBIND__")
    args.append("-xc++" if is_cxx else "-xc")
    has_std_argument = False
    for flag in self.env["CXXFLAGS" if is_cxx else "CFLAGS"]:
        flag = flag.replace("-std=gnu", "-std=c")
        if flag.startswith("-std=c"):
            has_std_argument = True
        args.append(flag)
    if not has_std_argument:
        args.append("-std=c++14")
    args.extend("-I{}".format(n.abspath()) for n in self._include_paths())
    args.extend("-D{}".format(p) for p in self.env.DEFINES)
    # point to clang resource dir, if specified
    if resource_dir:
        args.append("-resource-dir={}".format(resource_dir))
    return args