cmake_minimum_required(VERSION 3.24)
project(GHCWPS LANGUAGES CXX CUDA)
find_package(Boost REQUIRED)
find_package(Threads REQUIRED)
if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
  set(CMAKE_CUDA_ARCHITECTURES 86 89 100 120)
endif()
add_executable(GHCWPS GHCWPS.cu)
set_target_properties(GHCWPS PROPERTIES CXX_STANDARD 17 CUDA_STANDARD 17 CUDA_RUNTIME_LIBRARY Static)
target_include_directories(GHCWPS PRIVATE ${Boost_INCLUDE_DIRS})
target_link_libraries(GHCWPS PRIVATE Threads::Threads ${CMAKE_DL_LIBS})
if(MSVC)
  target_compile_options(GHCWPS PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/utf-8,/Zc:preprocessor>)
else()
  target_link_options(GHCWPS PRIVATE -static-libstdc++ -static-libgcc)
endif()
