def METHOD_NAME(self):
    # https://mxnet.apache.org/get_started/build_from_source
    args = [
        self.define_from_variant("USE_CUDA", "cuda"),
        self.define_from_variant("USE_CUDNN", "cudnn"),
        self.define_from_variant("USE_OPENCV", "opencv"),
        self.define_from_variant("USE_OPENMP", "openmp"),
        self.define_from_variant("USE_LAPACK", "lapack"),
        self.define("BLAS_LIBRARIES", self.spec["blas"].libs[0]),
    ]
    if self.spec.satisfies("@:1"):
        args.append(self.define_from_variant("USE_MKLDNN", "mkldnn"))
    elif self.spec.satisfies("@2:"):
        args.append(self.define_from_variant("USE_ONEDNN", "mkldnn"))
        args.append(self.define("USE_CUTENSOR", False))
    if "+cuda" in self.spec:
        if "cuda_arch=none" not in self.spec:
            cuda_arch = ";".join(
                "{0:.1f}".format(float(i) / 10.0)
                for i in self.spec.variants["cuda_arch"].value
            )
            args.append(self.define("MXNET_CUDA_ARCH", cuda_arch))
        args.extend(
            [
                self.define_from_variant("USE_NCCL", "nccl"),
                # Workaround for bug in GCC 8+ and CUDA 10 on PowerPC
                self.define("CMAKE_CUDA_FLAGS", self.compiler.cxx11_flag),
                # https://github.com/apache/mxnet/issues/21193
                # https://github.com/spack/spack/issues/36922
                self.define(
                    "CMAKE_CXX_FLAGS",
                    "-L" + join_path(self.spec["cuda"].libs.directories[0], "stubs"),
                ),
            ]
        )
    return args