Skip to content

Commit 20a5105

Browse files
committed
don't try to find OpenCL if header and lib variables alreayd exist
1 parent c93a374 commit 20a5105

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

CMakeLists.txt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
# SOFTWARE.
2020

2121
# Note: cmake 3.7 is needed to use OpenCL::OpenCL.
22+
# Older versions may work by explicitly specifying OpenCL_INCLUDE_DIRS and OpenCL_LIBRARIES.
2223
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
2324
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
2425

@@ -63,8 +64,18 @@ if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
6364
set_target_properties(extension_loader_copy PROPERTIES FOLDER "OpenCLExtensionLoader/Generation")
6465
endif()
6566

66-
if (NOT TARGET OpenCL::OpenCL)
67-
find_package(OpenCL)
67+
if (OpenCL_INCLUDE_DIRS AND OpenCL_LIBRARIES)
68+
message(STATUS "Using inherited OpenCL_INCLUDE_DIRS and OpenCL_LIBRARIES")
69+
set(OPENCL_EXTENSION_LOADER_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS})
70+
set(OPENCL_EXTENSION_LOADER_LIBRARIES ${OpenCL_LIBRARIES})
71+
else()
72+
if (NOT TARGET OpenCL::OpenCL)
73+
find_package(OpenCL)
74+
endif()
75+
if (NOT TARGET OpenCL::OpenCL)
76+
message(STATUS "OpenCL was not found!")
77+
endif()
78+
set(OPENCL_EXTENSION_LOADER_LIBRARIES OpenCL::OpenCL)
6879
endif()
6980

7081
set( OpenCLExtensionLoader_SOURCE_FILES
@@ -81,6 +92,7 @@ endif()
8192
add_library(OpenCL::OpenCLExt ALIAS OpenCLExt)
8293
set_target_properties(OpenCLExt PROPERTIES FOLDER "OpenCLExtensionLoader")
8394
set_target_properties(OpenCLExt PROPERTIES VERSION "0.9" SOVERSION "0")
95+
target_include_directories(OpenCLExt SYSTEM PUBLIC ${OPENCL_EXTENSION_LOADER_INCLUDE_DIRS})
8496
target_compile_definitions(OpenCLExt PRIVATE CL_TARGET_OPENCL_VERSION=300)
8597
if (OPENCL_EXTENSION_LOADER_SINGLE_PLATFORM_ONLY)
8698
target_compile_definitions(OpenCLExt PRIVATE CLEXT_SINGLE_PLATFORM_ONLY)
@@ -103,7 +115,7 @@ endif()
103115
if (OPENCL_EXTENSION_LOADER_INCLUDE_VA_API)
104116
target_compile_definitions(OpenCLExt PRIVATE CLEXT_INCLUDE_VA_API)
105117
endif()
106-
target_link_libraries(OpenCLExt PRIVATE OpenCL::OpenCL)
118+
target_link_libraries(OpenCLExt PRIVATE ${OPENCL_EXTENSION_LOADER_LIBRARIES})
107119

108120
if (MSVC)
109121
#/EHs enable C++ EH (no SEH exceptions)

tests/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ foreach(VERSION 120 200 210 220 300)
22
set(TEST_EXE test_extension_loader_cpp_${VERSION})
33
add_executable(${TEST_EXE} test_extension_loader.cpp)
44
set_target_properties(${TEST_EXE} PROPERTIES FOLDER "OpenCLExtensionLoader/Tests")
5+
target_include_directories(${TEST_EXE} PUBLIC ${OPENCL_EXTENSION_LOADER_INCLUDE_DIRS})
56
target_compile_definitions(${TEST_EXE} PUBLIC -DCL_TARGET_OPENCL_VERSION=${VERSION})
67
if (OPENCL_EXTENSION_LOADER_INCLUDE_GL)
78
target_compile_definitions(${TEST_EXE} PRIVATE CLEXT_INCLUDE_GL)
@@ -21,14 +22,15 @@ foreach(VERSION 120 200 210 220 300)
2122
if (OPENCL_EXTENSION_LOADER_INCLUDE_VA_API)
2223
target_compile_definitions(${TEST_EXE} PRIVATE CLEXT_INCLUDE_VA_API)
2324
endif()
24-
target_link_libraries(${TEST_EXE} PUBLIC OpenCL::OpenCL OpenCLExt)
25+
target_link_libraries(${TEST_EXE} PUBLIC ${OPENCL_EXTENSION_LOADER_LIBRARIES} OpenCLExt)
2526
add_test(NAME ${TEST_EXE} COMMAND ${TEST_EXE})
2627
endforeach(VERSION)
2728

2829
foreach(VERSION 120 200 210 220 300)
2930
set(TEST_EXE test_extension_loader_c_${VERSION})
3031
add_executable(${TEST_EXE} test_extension_loader.c)
3132
set_target_properties(${TEST_EXE} PROPERTIES FOLDER "OpenCLExtensionLoader/Tests")
33+
target_include_directories(${TEST_EXE} PUBLIC ${OPENCL_EXTENSION_LOADER_INCLUDE_DIRS})
3234
target_compile_definitions(${TEST_EXE} PUBLIC -DCL_TARGET_OPENCL_VERSION=${VERSION})
3335
if (OPENCL_EXTENSION_LOADER_INCLUDE_GL)
3436
target_compile_definitions(${TEST_EXE} PRIVATE CLEXT_INCLUDE_GL)
@@ -48,7 +50,7 @@ foreach(VERSION 120 200 210 220 300)
4850
if (OPENCL_EXTENSION_LOADER_INCLUDE_VA_API)
4951
target_compile_definitions(${TEST_EXE} PRIVATE CLEXT_INCLUDE_VA_API)
5052
endif()
51-
target_link_libraries(${TEST_EXE} PUBLIC OpenCL::OpenCL OpenCLExt)
53+
target_link_libraries(${TEST_EXE} PUBLIC ${OPENCL_EXTENSION_LOADER_LIBRARIES} OpenCLExt)
5254
add_test(NAME ${TEST_EXE} COMMAND ${TEST_EXE})
5355
endforeach(VERSION)
5456

0 commit comments

Comments
 (0)