if(LIBCLC_TARGET_OS AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIBCLC_TARGET_OS})
  add_subdirectory(${LIBCLC_TARGET_OS})
  return()
endif()

# Non-Vulkan SPIR-V uses a curated subset of generic builtins.
libclc_add_sources(${LIBCLC_OPENCL_TARGET} FILES
  math/fma.cl
)

libclc_add_sources(${LIBCLC_OPENCL_TARGET}
  BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../generic
  FILES
  async/async_work_group_strided_copy.cl
  async/wait_group_events.cl
  common/degrees.cl
  common/mix.cl
  common/radians.cl
  common/sign.cl
  common/smoothstep.cl
  common/step.cl
  geometric/cross.cl
  geometric/distance.cl
  geometric/dot.cl
  geometric/fast_distance.cl
  geometric/fast_length.cl
  geometric/fast_normalize.cl
  geometric/length.cl
  geometric/normalize.cl
  integer/rotate.cl
  integer/mad_sat.cl
  math/acos.cl
  math/acosh.cl
  math/acospi.cl
  math/asin.cl
  math/asinh.cl
  math/asinpi.cl
  math/atan.cl
  math/atan2.cl
  math/atan2pi.cl
  math/atanh.cl
  math/atanpi.cl
  math/cbrt.cl
  math/cos.cl
  math/cosh.cl
  math/cospi.cl
  math/erf.cl
  math/erfc.cl
  math/exp.cl
  math/expm1.cl
  math/exp2.cl
  math/exp10.cl
  math/fmod.cl
  math/fract.cl
  math/frexp.cl
  math/half_rsqrt.cl
  math/half_sqrt.cl
  math/hypot.cl
  math/ilogb.cl
  math/ldexp.cl
  math/lgamma.cl
  math/lgamma_r.cl
  math/log.cl
  math/log10.cl
  math/log1p.cl
  math/log2.cl
  math/logb.cl
  math/modf.cl
  math/pow.cl
  math/pown.cl
  math/powr.cl
  math/remainder.cl
  math/remquo.cl
  math/rootn.cl
  math/sin.cl
  math/sincos.cl
  math/sinh.cl
  math/sinpi.cl
  math/tan.cl
  math/tanh.cl
  math/tanpi.cl
  math/tgamma.cl
  shared/vload.cl
  shared/vstore.cl
)
