cmake_minimum_required(VERSION 3.20)

if (WIN32)
    set(SRC mcp2221a_i2c_win.cpp mcp2221a_serial_win.cpp)
elseif(UNIX)
    set(SRC mcp2221a_i2c.cpp mcp2221a_serial.cpp mcp2221a_hid.cpp)
endif()

# Export variables for use by other projects
set(${PROJECT_NAME}_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "Include dirs for ${PROJECT_NAME}")
set(${PROJECT_NAME}_LIBRARY_DIRS ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "Library dirs for ${PROJECT_NAME}")

add_library(${PROJECT_NAME} STATIC ${SRC})
if (UNIX)
    target_link_libraries(${PROJECT_NAME} PRIVATE i2c ${LIBUSB_LIB_PATH})
elseif(WIN32)

    if (MSVC)
        target_compile_options(${PROJECT_NAME} PRIVATE /Gz)
    endif()
     # Make sure this points to your actual import lib
    set(MCP_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../MCP2221_DLL/unmanaged/dll/mcp2221_dll_um_x64.lib" CACHE INTERNAL "Path to MCP2221 DLL import library")

    if (EXISTS "${MCP_LIB}")
        message(STATUS "Linking to ${MCP_LIB}")
        target_link_libraries(mcp2221a PUBLIC "${MCP_LIB}")
    else()
        message(FATAL_ERROR "MCP2221 DLL import library not found: ${MCP_LIB}")
    endif()
endif()