Commit a6d37c58 authored by Gallacchi Mattia's avatar Gallacchi Mattia
Browse files

Add libusb as dependency

parent 3793c4be
Loading
Loading
Loading
Loading
+24 −7
Original line number Diff line number Diff line
@@ -12,10 +12,6 @@ function(copy_runtime_dll target)
    endif()
endfunction()

# if (NOT UNIX)
#     message(FATAL_ERROR "This project only supports Unix-like systems.")
# endif()

option(BUILD_TESTS "Build the tests" ON)

project(mcp2221a LANGUAGES C CXX)
@@ -25,6 +21,7 @@ if (UNIX)
    include(ExternalProject)
    set(EXTERNAL_DIR ${CMAKE_CURRENT_BINARY_DIR}/external)

    # Download and build i2c-tools
    ExternalProject_Add(
        i2c-tools
        GIT_REPOSITORY https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git
@@ -48,8 +45,29 @@ if (UNIX)
    set_target_properties(i2c PROPERTIES IMPORTED_LOCATION ${I2C_LIB_PATH})
    include_directories(${I2C_INCLUDE_DIR})

    find_package(PkgConfig REQUIRED)
    pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
    # Download and build libusb
    ExternalProject_Add(
        libusb
        GIT_REPOSITORY https://github.com/libusb/libusb.git
        GIT_TAG v1.0.27
        PREFIX ${EXTERNAL_DIR}/libusb
        SOURCE_DIR ${EXTERNAL_DIR}/libusb/src
        STAMP_DIR ${EXTERNAL_DIR}/libusb/stamp
        CONFIGURE_COMMAND pwd && ./bootstrap.sh && ./configure --disable-udev --enable-static --disable-shared --prefix=${EXTERNAL_DIR}/libusb/install
        BUILD_COMMAND make -j4
        BUILD_IN_SOURCE 1
        INSTALL_COMMAND ""
    )
    ExternalProject_Get_Property(libusb BINARY_DIR)
    message(STATUS "libusb build directory: ${BINARY_DIR}")
    set(LIBUSB_LIB_PATH ${BINARY_DIR}/libusb/.libs/libusb-1.0.a)
    set(LIBUSB_INCLUDE_DIR ${EXTERNAL_DIR}/libusb/src/libusb)

    add_library(libusb-1.0.27 STATIC IMPORTED)
    set_target_properties(libusb PROPERTIES IMPORTED_LOCATION ${LIBUSB_LIB_PATH})
    include_directories(${LIBUSB_INCLUDE_DIR})
    include_directories(${LIBUSB_INCLUDE_DIR})


elseif(WIN32)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/MCP2221_DLL/unmanaged/dll)
@@ -58,7 +76,6 @@ endif()

include_directories(
    lib
    ${LIBUSB_INCLUDE_DIRS}
)
add_subdirectory(lib)

+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ set(${PROJECT_NAME}_LIBRARY_DIRS ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "Lib

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

    if (MSVC)