# Find all C source files in current directory
set(SRC_FILES
    ${CMAKE_CURRENT_SOURCE_DIR}/plugin.cc
    ${CMAKE_CURRENT_SOURCE_DIR}/print_event.cc
)

# Create shared library
add_library(nccl-profiler-example SHARED ${SRC_FILES})

# Set include directories
target_include_directories(nccl-profiler-example PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/nccl
    ${CUDAToolkit_INCLUDE_DIRS}
)

# Set output name to match Makefile
set_target_properties(nccl-profiler-example PROPERTIES
    OUTPUT_NAME "nccl-profiler-example"
    PREFIX "lib"
    POSITION_INDEPENDENT_CODE ON
    LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)

add_custom_command(TARGET nccl-profiler-example POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/test/unit/plugins
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/libnccl-profiler-example.so ${CMAKE_BINARY_DIR}/test/unit/plugins
)

# Add custom target for clean (equivalent to Makefile clean target)
add_custom_target(clean-profiler-lib
    COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_BINARY_DIR}/lib/libnccl-profiler-example.so
    COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_BINARY_DIR}/test/unit/plugins/libnccl-profiler-example.so
    COMMENT "Cleaning libnccl-profiler-example.so"
)
