Loading CMakeLists.txt +24 −7 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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 Loading @@ -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) Loading @@ -58,7 +76,6 @@ endif() include_directories( lib ${LIBUSB_INCLUDE_DIRS} ) add_subdirectory(lib) Loading lib/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading Loading
CMakeLists.txt +24 −7 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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 Loading @@ -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) Loading @@ -58,7 +76,6 @@ endif() include_directories( lib ${LIBUSB_INCLUDE_DIRS} ) add_subdirectory(lib) Loading
lib/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -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) Loading