cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
project(tests LANGUAGES CXX CUDA)
enable_language(CUDA)

# set(CMAKE_CXX_STANDARD 14)
# set(CMAKE_CXX_STANDARD_REQUIRED ON)
# set(CMAKE_CXX_EXTENSIONS OFF)
# add_library(my_lib STATIC opt/_cublas.cu)
# set_property(TARGET my_lib PROPERTY POSITION_INDEPENDENT_CODE  ON)
# set_property(TARGET my_lib PROPERTY CUDA_RESOLVE_DEVICE_SYMBOLS  ON)
# target_link_libraries(my_lib PUBLIC -lcublas -lcudart -lcurand -lgomp)
# target_include_directories(my_lib
#     PUBLIC
#         include
#         gtest
#         lutGEMM

# )
add_executable(tests 
    src/custom_random.cpp
    main.cc

    opt/fp16/gemv_fp16_codegemm.cu
    #opt/fp16/gemv_fp16_aqlm_2x8.cu
    #opt/fp16/gemv_fp16_aqlm_1x16.cu
    #opt/fp16/gemv_fp16_quip_sharp.cu
    #opt/fp16/gemv_fp16_qtip.cu
    #opt/fp16/dequant_fp16_aqlm_2x8
    #opt/fp16/dequant_fp16_aqlm_1x4
    #opt/fp16/temp_cublas_batch

)
set_target_properties(tests PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(tests PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON)
set_target_properties(tests PROPERTIES LINKER_LANGUAGE CXX)
target_link_libraries(tests -lcublasLt -lcublas -lcurand -lcudart -lcuda -lgomp codegemm)

# set(CMAKE_CXX_FLAGS_DEBUG "-O3 -fopenmp")



set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

target_include_directories(${PROJECT_NAME}
    PUBLIC
        include
        gtest
        codeGEMM

)

target_link_libraries(${PROJECT_NAME} 
    # PRIVATE 
    gtest
    codeGEMM
)