I’ve had this preprocessor clause in my program for over a year now. As far as I can tell it’s still required. I’d call in an interoperability issue.
#ifdef __APPLE__ //unfortunately, Apple OpenCL has different header name than NVIDIA/AMD
#include <OpenCL/opencl.h>
#else
#include <CL/cl.h>
#endif //__APPLE__