没有为 capnp_generate_cpp() 生成 cpp 文件

cpp files are not generated for capnp_generate_cpp()

我有 temp.capnp 文件,我的 cmake 文件有

find_package(CapnProto CONFIG REQUIRED)
include_directories(${CAPNP_INCLUDE_DIRS})
add_definitions(${CAPNP_DEFINITIONS})

set(CAPNPC_SRC_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "" FORCE)
set(CAPNPC_OUTPUT_DIR "." CACHE STRING "" FORCE)
file(MAKE_DIRECTORY "${CAPNPC_OUTPUT_DIR}")

capnp_generate_cpp(CAPNP_SOURCES CAPNP_HEADERS temp.capnp)

有了这个,它不会为 capnp 生成相应的文件,它也不会给出任何错误。我在这里缺少什么?

capnp_generate_cppadd_custom_command 的形式生成文件,也就是说,除非某些目标 依赖于 这些文件,否则不会执行任何操作。

这种依赖的最简单形式是由add_executable产生的:

# Create rules for generate source and header files.
capnp_generate_cpp(CAPNP_SOURCES CAPNP_HEADERS temp.capnp)
# Consume these files for executable.
add_executable(foo main.cpp ${CAPNP_SOURCES} ${CAPNP_HEADERS})

顺便说一句,CapnProtoConfig.cmake 脚本的说明中提供了这样的示例,该脚本是通过 find_package(CapnProto) 处理的。 (不要忘记此示例中的其他行,以便成功构建可执行文件)。