code: def generate(self):
      # BUILD_SHARED_LIBS and POSITION_INDEPENDENT_CODE are automatically parsed when self.options.shared or self.options.fPIC exist
      tc = CMakeToolchain(self)
      if cross_building(self):
          cmake_system_processor = {
              "armv8": "aarch64",
              "armv8.3": "aarch64",
          }.get(str(self.settings.arch), str(self.settings.arch))
          tc.variables[
              "CMAKE_SYSTEM_PROCESSOR"
          ] = cmake_system_processor
          if cmake_system_processor == "aarch64":
              tc.variables["ARROW_CPU_FLAG"] = "armv8"
      if is_msvc(self):
          tc.variables["ARROW_USE_STATIC_CRT"] = is_msvc_static_runtime(
              self
          )
      tc.variables["ARROW_DEPENDENCY_SOURCE"] = "SYSTEM"
      tc.variables[
          "ARROW_PACKAGE_KIND"
      ] = "conan"  # See https://github.com/conan-io/conan-center-index/pull/14903/files#r1057938314 for details
      tc.variables["ARROW_GANDIVA"] = bool(self.options.gandiva)
      tc.variables["ARROW_PARQUET"] = self._parquet()
      tc.variables["ARROW_SUBSTRAIT"] = bool(
          self.options.get_safe("substrait", False)
      )
      if Version(self.version) < "12.0.0":
          tc.variables["ARROW_PLASMA"] = bool(self._plasma())
      tc.variables["ARROW_ACERO"] = self._acero()
      tc.variables["ARROW_DATASET"] = self._dataset_modules()
      tc.variables["ARROW_FILESYSTEM"] = bool(
          self.options.filesystem_layer
      )
      tc.variables["PARQUET_REQUIRE_ENCRYPTION"] = bool(
          self.options.encryption
      )
      tc.variables["ARROW_HDFS"] = bool(self.options.hdfs_bridgs)
      tc.variables["ARROW_VERBOSE_THIRDPARTY_BUILD"] = True
      tc.variables["ARROW_BUILD_SHARED"] = bool(self.options.shared)
      tc.variables["ARROW_BUILD_STATIC"] = not bool(self.options.shared)
      tc.variables["ARROW_NO_DEPRECATED_API"] = not bool(
          self.options.deprecated
      )
      tc.variables["ARROW_FLIGHT"] = self._with_flight_rpc()
      tc.variables["ARROW_FLIGHT_SQL"] = bool(
          self.options.get_safe("with_flight_sql", False)
      )
      tc.variables["ARROW_COMPUTE"] = self._compute()
      tc.variables["ARROW_CSV"] = bool(self.options.with_csv)
      tc.variables["ARROW_CUDA"] = bool(self.options.with_cuda)
      tc.variables["ARROW_JEMALLOC"] = self._with_jemalloc()
      tc.variables["jemalloc_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_MIMALLOC"] = bool(self.options.with_mimalloc)
      tc.variables["ARROW_JSON"] = bool(self.options.with_json)
      tc.variables["google_cloud_cpp_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_GCS"] = bool(
          self.options.get_safe("with_gcs", False)
      )
      tc.variables["BOOST_SOURCE"] = "SYSTEM"
      tc.variables["Protobuf_SOURCE"] = "SYSTEM"
      if self._with_protobuf():
          tc.variables["ARROW_PROTOBUF_USE_SHARED"] = bool(
              self.options["protobuf"].shared
          )
      tc.variables["gRPC_SOURCE"] = "SYSTEM"
      if self._with_grpc():
          tc.variables["ARROW_GRPC_USE_SHARED"] = bool(
              self.options["grpc"].shared
          )
  
      tc.variables["ARROW_USE_GLOG"] = self._with_glog()
      tc.variables["GLOG_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_WITH_BACKTRACE"] = bool(
          self.options.with_backtrace
      )
      tc.variables["ARROW_WITH_BROTLI"] = bool(self.options.with_brotli)
      tc.variables["brotli_SOURCE"] = "SYSTEM"
      if self.options.with_brotli:
          tc.variables["ARROW_BROTLI_USE_SHARED"] = bool(
              self.options["brotli"].shared
          )
      tc.variables["gflags_SOURCE"] = "SYSTEM"
      if self._with_gflags():
          tc.variables["ARROW_GFLAGS_USE_SHARED"] = bool(
              self.options["gflags"].shared
          )
      tc.variables["ARROW_WITH_BZ2"] = bool(self.options.with_bz2)
      tc.variables["BZip2_SOURCE"] = "SYSTEM"
      if self.options.with_bz2:
          tc.variables["ARROW_BZ2_USE_SHARED"] = bool(
              self.options["bzip2"].shared
          )
      tc.variables["ARROW_WITH_LZ4"] = bool(self.options.with_lz4)
      tc.variables["lz4_SOURCE"] = "SYSTEM"
      if self.options.with_lz4:
          tc.variables["ARROW_LZ4_USE_SHARED"] = bool(
              self.options["lz4"].shared
          )
      tc.variables["ARROW_WITH_SNAPPY"] = bool(self.options.with_snappy)
      tc.variables["RapidJSON_SOURCE"] = "SYSTEM"
      tc.variables["Snappy_SOURCE"] = "SYSTEM"
      if self.options.with_snappy:
          tc.variables["ARROW_SNAPPY_USE_SHARED"] = bool(
              self.options["snappy"].shared
          )
      tc.variables["ARROW_WITH_ZLIB"] = bool(self.options.with_zlib)
      tc.variables["re2_SOURCE"] = "SYSTEM"
      tc.variables["ZLIB_SOURCE"] = "SYSTEM"
      tc.variables["xsimd_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_WITH_ZSTD"] = bool(self.options.with_zstd)
      if Version(self.version) >= "2.0":
          tc.variables["zstd_SOURCE"] = "SYSTEM"
          tc.variables["ARROW_SIMD_LEVEL"] = str(
              self.options.simd_level
          ).upper()
          tc.variables["ARROW_RUNTIME_SIMD_LEVEL"] = str(
              self.options.runtime_simd_level
          ).upper()
      else:
          tc.variables["ZSTD_SOURCE"] = "SYSTEM"
      if self.options.with_zstd:
          tc.variables["ARROW_ZSTD_USE_SHARED"] = bool(
              self.options["zstd"].shared
          )
      tc.variables["ORC_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_WITH_THRIFT"] = self._with_thrift()
      tc.variables["Thrift_SOURCE"] = "SYSTEM"
      if self._with_thrift():
          tc.variables["THRIFT_VERSION"] = bool(
              self.deps_cpp_info["thrift"].version
          )  # a recent thrift does not require boost
          tc.variables["ARROW_THRIFT_USE_SHARED"] = bool(
              self.options["thrift"].shared
          )
      tc.variables["ARROW_USE_OPENSSL"] = self._with_openssl()
      if self._with_openssl():
          tc.variables["OPENSSL_ROOT_DIR"] = self.deps_cpp_info[
              "openssl"
          ].rootpath.replace("\\", "/")
          tc.variables["ARROW_OPENSSL_USE_SHARED"] = bool(
              self.options["openssl"].shared
          )
      if self._with_boost():
          tc.variables["ARROW_USE_BOOST"] = True
          tc.variables["ARROW_BOOST_USE_SHARED"] = bool(
              self.options["boost"].shared
          )
      tc.variables["ARROW_S3"] = bool(self.options.with_s3)
      tc.variables["AWSSDK_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_BUILD_UTILITIES"] = bool(self.options.cli)
      tc.variables["ARROW_BUILD_INTEGRATION"] = False
      tc.variables["ARROW_INSTALL_NAME_RPATH"] = True
      tc.variables["ARROW_BUILD_EXAMPLES"] = False
      tc.variables["ARROW_BUILD_TESTS"] = False
      tc.variables["ARROW_ENABLE_TIMING_TESTS"] = False
      tc.variables["ARROW_BUILD_BENCHMARKS"] = False
      tc.variables["LLVM_SOURCE"] = "SYSTEM"
      tc.variables["ARROW_WITH_UTF8PROC"] = self._with_utf8proc()
      tc.variables["ARROW_BOOST_REQUIRED"] = self._with_boost()
      tc.variables["utf8proc_SOURCE"] = "SYSTEM"
      if self._with_utf8proc():
          tc.variables["ARROW_UTF8PROC_USE_SHARED"] = bool(
              self.options["utf8proc"].shared
          )
      tc.variables["BUILD_WARNING_LEVEL"] = "PRODUCTION"
      if is_msvc(self):
          tc.variables["ARROW_USE_STATIC_CRT"] = "MT" in str(
              self.settings.compiler.runtime
          )
      if self._with_llvm():
          tc.variables["LLVM_DIR"] = self.deps_cpp_info[
              "llvm-core"
          ].rootpath.replace("\\", "/")
      tc.generate()
  
      deps = CMakeDeps(self)
      deps.generate()
  
imports: from conan import ConanFile
  from conan.errors import ConanInvalidConfiguration
  from conan.tools.microsoft import is_msvc_static_runtime, is_msvc, check_min_vs
  from conan.tools.files import export_conandata_patches, apply_conandata_patches, get, copy, rmdir
  from conan.tools.build import check_min_cppstd, cross_building
  from conan.tools.scm import Version
  from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
  import os
  import glob
label_desc: Use image node_id 28 for calling the ArrowConan obj's underlying member method code with example usage: obj.generate() without return types