code: def require_prebuilt_dist(func):
      
  
      @wraps(func)
      def wrapper_func(self, args):
          ctx = self.ctx
          ctx.set_archs(self._archs)
          ctx.prepare_build_environment(user_sdk_dir=self.sdk_dir,
                                        user_ndk_dir=self.ndk_dir,
                                        user_android_api=self.android_api,
                                        user_ndk_api=self.ndk_api)
          dist = self._dist
          if dist.needs_build:
              if dist.folder_exists():  # possible if the dist is being replaced
                  dist.delete()
              info_notify('No dist exists that meets your requirements, '
                          'so one will be built.')
              build_dist_from_args(ctx, dist, args)
          func(self, args)
      return wrapper_func
docs: Decorator for ToolchainCL methods. If present, the method will
      automatically make sure a dist has been built before continuing
      or, if no dists are present or can be obtained, will raise an
      error.