I download opencl-icd from KhronosGroup and build it fine.
But it doesn't have OpenCLConfig.cmake.
So I decide to create one that my program(CMakeLists.txt) can use find_package(OpenCL) to invoke it.
Following file tree is my OpenCL dir. after I build.
# $PWD is C:/SDKs/ocl-icd
|-- OpenCLConfig.cmake
|-- bin
| `-- OpenCL.dll
|-- include
| `-- CL
... CL Headers
`-- lib
|-- OpenCL.exp
`-- OpenCL.lib
I create OpenCLConfig.cmake which content is:
set(OpenCL_DIR "C:/SDKs/ocl-icd")
set(OpenCL_VERSION 2.2)
set(OpenCL_VERSION_MAJOR 2)
set(OpenCL_VERSION_MINOR 2)
SET(OpenCV_VERSION_PATCH 0)
SET(OpenCV_VERSION_TWEAK 0)
set(OpenCL_INCLUDE_DIR "${OpenCL_DIR}/include")
set(OpenCL_LIBRARIES "OpenCL")
I use find_package(OpenCL) in others CMakeLists.txt:
...
set(OpenCL_DIR "C:/SDKs/ocl-icd" CACHE PATH "OpenCL Root DIR")
find_package(OpenCL 2 REQUIRED)
include_directories (${OpenCL_INCLUDE_DIR})
add_executable (${PROJECT_NAME} test.cc)
target_link_libraries(${OpenCL_LIBRARIES})
...
While I use cmake-gui to configure it, I got error report
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find OpenCL (missing: OpenCL_INCLUDE_DIR) (Required is at least
version "2")
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.15/Modules/FindOpenCL.cmake:150 (find_package_handle_standard_args)
CMakeLists.txt:10 (find_package)
I think that it error caused by OpenCLConfig.cmake.
How do I solved it?
update: add OpenCLConfigVersion.cmake
set(OpenCL_VERSION 2.2)
set(OpenCL_VERSION_MAJOR 2)
set(OpenCL_VERSION_MINOR 2)
SET(OpenCV_VERSION_PATCH 0)
SET(OpenCV_VERSION_TWEAK 0)