Commit 8878eac6 authored by Gallacchi Mattia's avatar Gallacchi Mattia
Browse files

Add libi2c


Add scan exe

Signed-off-by: default avatarmattia.gallacchi <mattia.gallacchi@he-arc.ch>
parent ae705689
Loading
Loading
Loading
Loading
+39 −3
Original line number Diff line number Diff line
cmake_minimum_required(VERSION 3.20)

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)
set(CMAKE_CXX_STANDARD_REQUIRED 20)

set(CMAKE_CXX_STANDARD_REQUIRED 11)
include(ExternalProject)

include_directories(lib)
set(EXTERNAL_DIR ${CMAKE_BINARY_DIR}/external)

ExternalProject_Add(
    i2c_tools
    GIT_REPOSITORY https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git
    GIT_TAG v4.4
    PREFIX ${EXTERNAL_DIR}/i2c-tools
    BINARY_DIR ${EXTERNAL_DIR}/i2c-tools/src/i2c_tools
    CONFIGURE_COMMAND ""
    BUILD_COMMAND make BUILD_STATIC_LIB=1 -j4
    INSTALL_COMMAND ""
)

# Get build directory of i2c-tools
ExternalProject_Get_Property(i2c_tools BINARY_DIR)
message(STATUS "i2c-tools build directory: ${BINARY_DIR}")
set(I2C_LIB_PATH ${BINARY_DIR}/lib/libi2c.a)
set(I2C_INCLUDE_DIR ${EXTERNAL_DIR}/i2c-tools/src/i2c_tools/include)

# Create an imported target
add_library(i2c STATIC IMPORTED)
set_target_properties(i2c PROPERTIES
    IMPORTED_LOCATION ${I2C_LIB_PATH}
    INTERFACE_INCLUDE_DIRECTORIES ${I2C_INCLUDE_DIR}
)
add_dependencies(i2c i2c_tools)

include_directories(lib)
add_subdirectory(lib)

if (BUILD_TESTS)
    add_subdirectory(tests)
endif()
 No newline at end of file

CMakePresets.json

0 → 100644
+15 −0
Original line number Diff line number Diff line
{
    "version": 2,
    "configurePresets": [
        {
            "name": "default",
            "binaryDir": "${sourceDir}/build",
            "generator": "Unix Makefiles",
            "cacheVariables": {
                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
                "CMAKE_BUILD_TYPE": "Release",
                "CMAKE_CXX_STANDARD": "20"
            }
        }
    ]
  }
 No newline at end of file
+2 −3
Original line number Diff line number Diff line
@@ -40,9 +40,8 @@ sudo apt install -y libi2c-dev
Standard **CMAKE**:

```bash
mkdir build && cd build
cmake ..
make
cmake --preset default
cmake --build build/
```

## Try it out
+1 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

#include <stdexcept>
#include <vector>
#include <cstdint>
#include <string>

#define MCP2221_NAME        "MCP2221 USB-I2C/UART Combo"
+4 −1
Original line number Diff line number Diff line
@@ -7,3 +7,6 @@ target_link_libraries(${PROJECT_NAME} mcp2221a)

add_executable(main main.cpp)
target_link_libraries(main mcp2221a)

add_executable(i2c_scan scan.cpp)
target_link_libraries(i2c_scan mcp2221a)
 No newline at end of file
Loading