1 cmake_minimum_required(VERSION 3.22.1)
2 project(opencl_backend)
3
4 set(CMAKE_CXX_STANDARD 17)
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 ../shared/target/build
34 )
35
36 add_library(opencl_backend SHARED
37 ${OPENCL_BACKEND}/src/main/native/include/opencl_backend.h
38 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend.cpp
39 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_buffer.cpp
40 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_info.cpp
41 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_queue.cpp
42 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_kernel.cpp
43 ${OPENCL_BACKEND}/src/main/native/cpp/opencl_backend_program.cpp
44 )
45
46 target_link_libraries(opencl_backend
47 shared_backend
48 ${OPENCL_LIB}
49 )
50
51 add_executable(opencl_info
52 ${OPENCL_BACKEND}/src/main/native/include/opencl_backend.h
53 ${OPENCL_BACKEND}/src/main/native/cpp/info.cpp
54 )
55 add_executable(opencl_squares
56 ${OPENCL_BACKEND}/src/main/native/include/opencl_backend.h
57 ${OPENCL_BACKEND}/src/main/native/cpp/squares.cpp
58 )
59
60 target_link_libraries(opencl_squares
61 opencl_backend
62
63 )
64 target_link_libraries(opencl_info
65 opencl_backend
66
67 )
68
69 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/extractFile
70 COMMAND echo jextract stuff
71 #COMMAND BANNER jextract stuff
72 COMMAND touch ${CMAKE_BINARY_DIR}/extractFile
73 #COMMAND ${CMAKE_COMMAND} -E touch ${LIBFOO_TAR_HEADERS}
74 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
75 #DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/libfoo/foo.tar"
76 COMMENT "Extracting opencl"
77 VERBATIM
78 )
79
80 add_custom_target(extract DEPENDS ${CMAKE_BINARY_DIR}/extractFile)
81
82 endif()