diff options
-rw-r--r-- | .gitmodules | 5 | ||||
-rw-r--r-- | client/CMakeLists.txt | 17 | ||||
l--------- | client/lib | 1 | ||||
m--------- | lib/protobuf | 0 | ||||
-rw-r--r-- | proto/puzbusv1.proto | 4 |
5 files changed, 23 insertions, 4 deletions
diff --git a/.gitmodules b/.gitmodules index fc98963..0ba4c4e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,8 @@ url = https://github.com/FreeRTOS/FreeRTOS-Kernel branch = V11.1.0 shallow = true +[submodule "protobuf"] + path = lib/protobuf + url = https://github.com/protocolbuffers/protobuf + branch = v25.3 + shallow = true diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 9e433b1..eae4c66 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -4,11 +4,24 @@ set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS 1) -include(../proto/include.cmake) - project(puzzlebox_client C CXX) +find_package(Protobuf REQUIRED) + add_executable(main main.cpp + ../proto/puzbusv1.proto + ) + +set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--copy-dt-needed-entries") +set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--copy-dt-needed-entries") +set(CMAKE_STATIC_LINKER_FLAGS "-Wl,--copy-dt-needed-entries") + +protobuf_generate( + APPEND_PATH + TARGET main + IMPORT_DIRS ../proto/ ) +target_link_libraries(main PRIVATE protobuf::libprotobuf) +target_include_directories(main PRIVATE "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>") diff --git a/client/lib b/client/lib new file mode 120000 index 0000000..dc598c5 --- /dev/null +++ b/client/lib @@ -0,0 +1 @@ +../lib
\ No newline at end of file diff --git a/lib/protobuf b/lib/protobuf new file mode 160000 +Subproject 4a2aef570deb2bfb8927426558701e8bfc26f2a diff --git a/proto/puzbusv1.proto b/proto/puzbusv1.proto index 6b4fa52..2358135 100644 --- a/proto/puzbusv1.proto +++ b/proto/puzbusv1.proto @@ -1,11 +1,11 @@ -syntax = "proto2"; +syntax = "proto3"; package puzbus; message I2CMsg { // 32-bit is the smallest integer format supported by protobuf, even though // we only need 7-10 bits for the I2C address. - required uint32 address = 1; + uint32 address = 1; optional bytes data = 2; } |