code: def __init__(
      self,
      # toolchain
      cc=None,
      cxx=None,
      cxx_flags=None,
      build_type=None,
      warn_level=None,
      cpp_package_prefix=None,
      install_prefix=None,
      use_conda=None,
      build_static=True,
      build_shared=True,
      build_unity=True,
      # tests & examples
      with_tests=None,
      with_benchmarks=None,
      with_examples=None,
      with_integration=None,
      # static checks
      use_asan=None,
      use_tsan=None,
      use_ubsan=None,
      with_fuzzing=None,
      # Components
      with_compute=None,
      with_csv=None,
      with_cuda=None,
      with_dataset=None,
      with_filesystem=None,
      with_flight=None,
      with_gandiva=None,
      with_gcs=None,
      with_hdfs=None,
      with_hiveserver2=None,
      with_ipc=True,
      with_json=None,
      with_mimalloc=None,
      with_jemalloc=None,
      with_parquet=None,
      with_python=True,
      with_r=None,
      with_s3=None,
      # Compressions
      with_brotli=None,
      with_bz2=None,
      with_lz4=None,
      with_snappy=None,
      with_zlib=None,
      with_zstd=None,
      # extras
      with_lint_only=False,
      use_gold_linker=True,
      simd_level="DEFAULT",
      cmake_extras=None,
  ):
      self._cc = cc
      self._cxx = cxx
      self.cxx_flags = cxx_flags
  
      self._build_type = build_type
      self.warn_level = warn_level
      self._install_prefix = install_prefix
      self._package_prefix = cpp_package_prefix
      self._use_conda = use_conda
      self.build_static = build_static
      self.build_shared = build_shared
      self.build_unity = build_unity
  
      self.with_tests = with_tests
      self.with_benchmarks = with_benchmarks
      self.with_examples = with_examples
      self.with_integration = with_integration
  
      self.use_asan = use_asan
      self.use_tsan = use_tsan
      self.use_ubsan = use_ubsan
      self.with_fuzzing = with_fuzzing
  
      self.with_compute = with_compute
      self.with_csv = with_csv
      self.with_cuda = with_cuda
      self.with_dataset = with_dataset
      self.with_filesystem = with_filesystem
      self.with_flight = with_flight
      self.with_gandiva = with_gandiva
      self.with_gcs = with_gcs
      self.with_hdfs = with_hdfs
      self.with_hiveserver2 = with_hiveserver2
      self.with_ipc = with_ipc
      self.with_json = with_json
      self.with_mimalloc = with_mimalloc
      self.with_jemalloc = with_jemalloc
      self.with_parquet = with_parquet
      self.with_python = with_python
      self.with_r = with_r
      self.with_s3 = with_s3
  
      self.with_brotli = with_brotli
      self.with_bz2 = with_bz2
      self.with_lz4 = with_lz4
      self.with_snappy = with_snappy
      self.with_zlib = with_zlib
      self.with_zstd = with_zstd
  
      self.with_lint_only = with_lint_only
      self.use_gold_linker = use_gold_linker
      self.simd_level = simd_level
  
      self.cmake_extras = cmake_extras
  
      # Fixup required dependencies by providing sane defaults if the caller
      # didn't specify the option.
      if self.with_r:
          self.with_csv = coalesce(with_csv, True)
          self.with_dataset = coalesce(with_dataset, True)
          self.with_filesystem = coalesce(with_filesystem, True)
          self.with_ipc = coalesce(with_ipc, True)
          self.with_json = coalesce(with_json, True)
          self.with_parquet = coalesce(with_parquet, True)
  
      if self.with_python:
          self.with_compute = coalesce(with_compute, True)
          self.with_csv = coalesce(with_csv, True)
          self.with_dataset = coalesce(with_dataset, True)
          self.with_filesystem = coalesce(with_filesystem, True)
          self.with_hdfs = coalesce(with_hdfs, True)
          self.with_json = coalesce(with_json, True)
          self.with_lz4 = coalesce(with_lz4, True)
          self.with_zlib = coalesce(with_zlib, True)
  
      if self.with_dataset:
          self.with_filesystem = coalesce(with_filesystem, True)
          self.with_parquet = coalesce(with_parquet, True)
  
      if self.with_parquet:
          self.with_snappy = coalesce(with_snappy, True)
  
file_path: arrow/dev/archery/archery/lang/cpp.py
imports: import os
  from ..utils.cmake import CMakeDefinition
label_desc: Use image node_id 1 to create a new CppConfiguration object  with example: obj = CppConfiguration(cc, cxx, cxx_flags, build_type, warn_level, cpp_package_prefix, install_prefix, use_conda, build_static, build_shared, build_unity, with_tests, with_benchmarks, with_examples, with_integration, use_asan, use_tsan, use_ubsan, with_fuzzing, with_compute, with_csv, with_cuda, with_dataset, with_filesystem, with_flight, with_gandiva, with_gcs, with_hdfs, with_hiveserver2, with_ipc, with_json, with_mimalloc, with_jemalloc, with_parquet, with_python, with_r, with_s3, with_brotli, with_bz2, with_lz4, with_snappy, with_zlib, with_zstd, with_lint_only, use_gold_linker, simd_level, cmake_extras)