Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
cmake_minimum_required(VERSION 3.22)

project(libi2c
VERSION 0.2.1
LANGUAGES C CXX
)

option(PYTHON_BINDINGS "Enable Python bindings compilation" OFF)
option(BUILD_EXAMPLES "Build library usage examples" OFF)

if(NOT LINUX)
message(FATAL_ERROR "Non Linux build is not supported")
endif()

add_library(libi2c
src/i2c.c
)
target_include_directories(libi2c
PUBLIC
include/
)
target_compile_definitions(libi2c
PUBLIC
"LIBI2C_VERSION=\"${CMAKE_PROJECT_VERSION}\""
)
target_compile_options(libi2c
PRIVATE
-Wall -Wextra
)
set_target_properties(libi2c
PROPERTIES
PREFIX ""
)

install(TARGETS libi2c)
install(DIRECTORY include/
TYPE INCLUDE
)

if(PYTHON_BINDINGS)
find_package(Python COMPONENTS Interpreter Development)

add_library(pylibi2c SHARED
src/pyi2c.c
)
target_link_libraries(pylibi2c
PUBLIC
Python::Python
libi2c
)
set_target_properties(pylibi2c
PROPERTIES
PREFIX ""
)
install(TARGETS pylibi2c DESTINATION "${Python_SITEARCH}/")

enable_testing()
add_test(NAME python_bindings_test
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${Python_EXECUTABLE} "${CMAKE_SOURCE_DIR}/tests/test_pylibi2c.py"
)
set_property(TEST python_bindings_test
PROPERTY
ENVIRONMENT "PYTHONPATH=${CMAKE_BINARY_DIR}"
)
endif()

if(BUILD_EXAMPLES)
add_subdirectory(example)
endif()

include(CPack)
53 changes: 0 additions & 53 deletions Makefile

This file was deleted.

1 change: 0 additions & 1 deletion VERSION

This file was deleted.

20 changes: 20 additions & 0 deletions example/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
cmake_minimum_required(VERSION 3.22)

project(libi2c_examples)

add_executable(i2c_tools
i2c_tools.c
)
target_link_libraries(i2c_tools
PUBLIC
libi2c
)

add_executable(i2c_without_internal_address
i2c_without_internal_address.c
)
target_link_libraries(i2c_without_internal_address
PUBLIC
libi2c
)
install(TARGETS i2c_tools i2c_without_internal_address)
33 changes: 0 additions & 33 deletions example/Makefile

This file was deleted.

15 changes: 0 additions & 15 deletions example/meson.build

This file was deleted.

7 changes: 0 additions & 7 deletions include/meson.build

This file was deleted.

44 changes: 0 additions & 44 deletions meson.build

This file was deleted.

38 changes: 0 additions & 38 deletions setup.py

This file was deleted.

54 changes: 0 additions & 54 deletions src/meson.build

This file was deleted.

14 changes: 0 additions & 14 deletions tests/meson.build

This file was deleted.