cmake_minimum_required(VERSION 3.20)

project(qrack_device)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

option(ENABLE_OPENCL "Use OpenCL optimizations" ON)
find_package(OpenCL)
if (NOT OpenCL_FOUND)
    set (ENABLE_OPENCL OFF)
endif (NOT OpenCL_FOUND)
add_library(qrack_device SHARED pennylane_qrack/qrack_device.cpp)
target_link_directories(qrack_device PUBLIC ${CMAKE_SOURCE_DIR}/catalyst/runtime/include /usr/local/lib/qrack /usr/lib/qrack "C:\\Program Files\\qrack")
target_include_directories(qrack_device PUBLIC ${CMAKE_SOURCE_DIR}/catalyst/runtime/include)
if (ENABLE_OPENCL)
    target_link_libraries(qrack_device PUBLIC qrack OpenCL)
else (ENABLE_OPENCL)
    target_link_libraries(qrack_device PUBLIC qrack)
endif (ENABLE_OPENCL)
set_property(TARGET qrack_device PROPERTY POSITION_INDEPENDENT_CODE ON)
install(TARGETS qrack_device LIBRARY DESTINATION pennylane_qrack)
