50 lines
903 B
CMake
50 lines
903 B
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
# Force GCC compiler
|
|
set(CMAKE_C_COMPILER gcc)
|
|
|
|
# Project name
|
|
project(protobuftest C)
|
|
|
|
# Set C standard
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
|
|
# Compiler flags
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
|
|
|
|
# Include directories
|
|
include_directories(
|
|
${CMAKE_SOURCE_DIR}
|
|
${CMAKE_SOURCE_DIR}/pb
|
|
${CMAKE_SOURCE_DIR}/platform_shared
|
|
)
|
|
|
|
# Nanopb library sources
|
|
set(NANOPB_SRCS
|
|
pb/pb_common.c
|
|
pb/pb_decode.c
|
|
pb/pb_encode.c
|
|
)
|
|
|
|
# Generated protobuf sources
|
|
set(PROTO_SRCS
|
|
platform_shared/example.pb.c
|
|
)
|
|
|
|
# Main application sources
|
|
set(APP_SRCS
|
|
main.c
|
|
)
|
|
|
|
# Create executable
|
|
add_executable(${PROJECT_NAME}
|
|
${APP_SRCS}
|
|
${NANOPB_SRCS}
|
|
${PROTO_SRCS}
|
|
)
|
|
|
|
# Optional: Create a nanopb library (alternative approach)
|
|
# add_library(nanopb STATIC ${NANOPB_SRCS})
|
|
# target_link_libraries(${PROJECT_NAME} nanopb)
|