我的cmake文件有temp.capnp文件
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生成相应的文件,也不会给出任何错误。我在这里错过了什么?
发布于 2019-02-12 21:51:42
宏capnp_generate_cpp以add_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)处理的。(不要忘记本例中的其他行,以便成功构建可执行文件)。
https://stackoverflow.com/questions/54657651
复制相似问题