def METHOD_NAME(self):
    """Populate cmake arguments for Mercury."""
    spec = self.spec
    define = self.define
    define_from_variant = self.define_from_variant
    parallel_tests = "+mpi" in spec and self.run_tests
    METHOD_NAME = [
        define_from_variant("BUILD_SHARED_LIBS", "shared"),
        define("MERCURY_USE_BOOST_PP", True),
        define_from_variant("MERCURY_USE_CHECKSUMS", "checksum"),
        define("MERCURY_USE_SYSTEM_MCHECKSUM", False),
        define("MERCURY_USE_XDR", False),
        define_from_variant("NA_USE_BMI", "bmi"),
        define_from_variant("NA_USE_MPI", "mpi"),
        define_from_variant("NA_USE_SM", "sm"),
    ]
    if "@2.3.0:" in spec:
        METHOD_NAME.append(define("BUILD_TESTING_UNIT", self.run_tests))
    if "@2.2.0:" in spec:
        METHOD_NAME.extend(
            [
                define_from_variant("NA_USE_PSM", "psm"),
                define_from_variant("NA_USE_PSM2", "psm2"),
            ]
        )
        if "+ofi" in spec:
            METHOD_NAME.append(define_from_variant("NA_OFI_USE_HWLOC", "hwloc"))
    if "@2.1.0:" in spec:
        METHOD_NAME.append(define_from_variant("NA_USE_UCX", "ucx"))
    if "@2.0.0:" in spec:
        METHOD_NAME.extend(
            [
                define_from_variant("MERCURY_ENABLE_DEBUG", "debug"),
                define("MERCURY_TESTING_ENABLE_PARALLEL", parallel_tests),
            ]
        )
    # Previous versions of mercury had more extensive CMake options
    if "@:1.0.1" in spec:
        METHOD_NAME.extend(
            [
                define("MERCURY_ENABLE_PARALLEL_TESTING", parallel_tests),
                define("MERCURY_ENABLE_POST_LIMIT", False),
                define_from_variant("MERCURY_ENABLE_VERBOSE_ERROR", "debug"),
                define("MERCURY_USE_EAGER_BULK", True),
                define("MERCURY_USE_SELF_FORWARD", True),
            ]
        )
    if "@1.0.0:" in spec:
        METHOD_NAME.extend(
            [
                define_from_variant("MERCURY_USE_SYSTEM_BOOST", "boostsys"),
                define_from_variant("NA_USE_OFI", "ofi"),
            ]
        )
    if "+ofi" in spec:
        ofi_fabrics = spec["libfabric"].variants["fabrics"].value
        if "gni" in ofi_fabrics:
            METHOD_NAME.append(define_from_variant("NA_OFI_GNI_USE_UDREG", "udreg"))
        if self.run_tests:
            supported = ["tcp", "verbs", "gni", "cxi"]
            ofi_test_fabrics = list(filter(lambda x: x in supported, ofi_fabrics))
            METHOD_NAME.append(
                define("NA_OFI_TESTING_PROTOCOL", format(";".join(ofi_test_fabrics)))
            )
    return METHOD_NAME