# A custom command and target to turn the OpenCL kernel into a byte array header # The normal build depends on it properly and if the kernel file is changed, then # a rebuild of libethash-cl should be triggered add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ethash_cl_miner_kernel.h COMMAND ${CMAKE_COMMAND} ARGS -DBIN2H_SOURCE_FILE="${CMAKE_CURRENT_SOURCE_DIR}/ethash_cl_miner_kernel.cl" -DBIN2H_VARIABLE_NAME=ethash_cl_miner_kernel -DBIN2H_HEADER_FILE="${CMAKE_CURRENT_BINARY_DIR}/ethash_cl_miner_kernel.h" -P "${CMAKE_CURRENT_SOURCE_DIR}/bin2h.cmake" COMMENT "Generating OpenCL Kernel Byte Array" DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ethash_cl_miner_kernel.cl ) add_custom_target(clbin2h DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ethash_cl_miner_kernel.h ${CMAKE_CURRENT_SOURCE_DIR}/ethash_cl_miner_kernel.cl) aux_source_directory(. SRC_LIST) file(GLOB OUR_HEADERS "*.h") set(HEADERS ${OUR_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/ethash_cl_miner_kernel.h) if(APPLE) # On macOS use system OpenCL library. find_package(OpenCL REQUIRED) else() hunter_add_package(OpenCL) find_package(OpenCL CONFIG REQUIRED) endif() include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(..) add_library(ethash-cl ${SRC_LIST} ${HEADERS}) target_link_libraries(ethash-cl PUBLIC ethash) target_link_libraries(ethash-cl PRIVATE OpenCL::OpenCL)