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()