Import('env', 'arch', 'SHARED')

if SHARED:
  fxn = env.SharedLibrary
else:
  fxn = env.Library

_common = fxn('common', ['params.cc', 'swaglog.cc', 'util.c', 'cqueue.c'], LIBS="json11")
_visionipc = fxn('visionipc', ['visionipc.c', 'ipc.c'])

files = [
  'buffering.c',
  'clutil.c',
  'efd.c',
  'glutil.c',
  'visionimg.cc',
]

if arch == "aarch64":
  defines = {}
  files += [
    'framebuffer.cc',
    'touch.c',
    'visionbuf_ion.c',
  ]
  _gpu_libs = ['gui', 'adreno_utils']
elif arch == "larch64":
  defines = {"CLU_NO_CACHE": None}
  files += [
    'visionbuf_ion.c',
  ]
  _gpu_libs = ['GL']
else:
  defines = {"CLU_NO_CACHE": None}
  files += [
    'visionbuf_cl.c',
  ]
  _gpu_libs = ["GL"]

_gpucommon = fxn('gpucommon', files, CPPDEFINES=defines, LIBS=_gpu_libs)
Export('_common', '_visionipc', '_gpucommon', '_gpu_libs')