1 cmake_minimum_required(VERSION 3.22.1)
2 project(opencl_backend)
3
4 set(CMAKE_CXX_STANDARD 14)
5
6 find_package(OpenCL)
7 if(OPENCL_FOUND)
8 message("OPENCL")
9 if ("${OPENCL_BACKEND}EMPTY" STREQUAL "EMPTY")
10 set (OPENCL_BACKEND "${CMAKE_SOURCE_DIR}")
11 message("OPENCL_BACKEND=${OPENCL_BACKEND}")
12 endif()
13
14 if ("${SHARED_BACKEND}EMPTY" STREQUAL "EMPTY")
15 set (SHARED_BACKEND "${CMAKE_SOURCE_DIR}/../shared")
16 message("SHARED_BACKEND=${SHARED_BACKEND}")
17 endif()
18
19 if (APPLE)
20 set(OPENCL_INCLUDE_DIR "-framework OpenCL")
21 set(OPENCL_LIB "-framework OpenCL")
22 else()
23 set(OPENCL_LIB "OpenCL")
24 endif()
25
26 include_directories(
27 ${OPENCL_BACKEND}/src/main/native/include
28 ${SHARED_BACKEND}/src/main/native/include
29 ${OPENCL_INCLUDE_DIR}
30 )
31 link_directories(
32 ${CMAKE_BINARY_DIR}
33 )
34
35 add_library(opencl_backend SHARED
36 ${OPENCL_BACKEND}/src/main/native/include/opencl_backend.h
37 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend.cpp
38 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_buffer.cpp
39 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_info.cpp
40 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_queue.cpp
41 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_kernel.cpp
42 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_program.cpp
43 )
44
45 target_link_libraries(opencl_backend
46 shared_backend
47 ${OPENCL_LIB}
48 )
49
50 add_executable(opencl_info
51 ${OPENCL_BACKEND}/src/main/native/include/opencl_backend.h
52 ${OPENCL_BACKEND}/src/main/native/cpp/info.cpp
53 )
54 add_executable(opencl_squares
55 ${OPENCL_BACKEND}/src/main/native/include/opencl_backend.h
56 ${OPENCL_BACKEND}/src/main/native/cpp/squares.cpp
57 )
58
59 target_link_libraries(opencl_squares
60 opencl_backend
61
62 )
63 target_link_libraries(opencl_info
64 opencl_backend
65
66 )
67
68 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/extractFile
69 COMMAND echo jextract stuff
70 #COMMAND BANNER jextract stuff
71 COMMAND touch ${CMAKE_BINARY_DIR}/extractFile
72 #COMMAND ${CMAKE_COMMAND} -E touch ${LIBFOO_TAR_HEADERS}
73 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
74 #DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/libfoo/foo.tar"
75 COMMENT "Extracting opencl"
76 VERBATIM
77 )
78
79 add_custom_target(extract DEPENDS ${CMAKE_BINARY_DIR}/extractFile)
80
81 endif()