fix cmake
This commit is contained in:
parent
45a69c993f
commit
22a2e87003
1 changed files with 44 additions and 0 deletions
44
examples/book/CMakeLists.txt
Normal file
44
examples/book/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
cmake_minimum_required(VERSION 3.10)
|
||||
project(MyCapnpProject)
|
||||
|
||||
# Find the Cap'n Proto compiler and C plugin
|
||||
find_program(CAPNP_EXECUTABLE capnp)
|
||||
|
||||
if(NOT CAPNP_EXECUTABLE)
|
||||
message(FATAL_ERROR "capnp compiler not found!")
|
||||
endif()
|
||||
|
||||
# Schema file (adjust path as needed)
|
||||
set(SCHEMA_FILE "book.capnp")
|
||||
|
||||
# Generated file paths (outputs in the build directory)
|
||||
set(GENERATED_C "${CMAKE_CURRENT_BINARY_DIR}/${SCHEMA_FILE}.c")
|
||||
set(GENERATED_H "${CMAKE_CURRENT_BINARY_DIR}/${SCHEMA_FILE}.h")
|
||||
|
||||
# Generate C++ sources from the schema
|
||||
add_custom_command(
|
||||
OUTPUT ${GENERATED_C} ${GENERATED_H}
|
||||
COMMAND ${CAPNP_EXECUTABLE} compile
|
||||
-o $<TARGET_FILE:capnpc-c>:${CMAKE_CURRENT_BINARY_DIR}
|
||||
-I ${CMAKE_CURRENT_SOURCE_DIR}/../../compiler
|
||||
--src-prefix ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_FILE}
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_FILE}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Generating C code for ${SCHEMA_FILE}"
|
||||
)
|
||||
|
||||
# Create an executable/library and include generated files
|
||||
add_executable(book test.c ${GENERATED_C})
|
||||
|
||||
# Include directory for generated headers
|
||||
target_include_directories(book PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Link against Cap'n Proto libraries
|
||||
target_link_libraries(book PRIVATE
|
||||
capnp
|
||||
CapnC_Runtime
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue