没有为 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_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)
处理的。 (不要忘记此示例中的其他行,以便成功构建可执行文件)。
我有 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_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)
处理的。 (不要忘记此示例中的其他行,以便成功构建可执行文件)。