set(EXECUTABLE ethash-cl) # 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) include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(..) add_library(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) target_include_directories(${EXECUTABLE} PUBLIC SYSTEM ${OpenCL_INCLUDE_DIR}) target_link_libraries(${EXECUTABLE} ${OpenCL_LIBRARIES} ethash) install( TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include/${EXECUTABLE} )