Макрос 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)
.(Не забудьте о других строках в этом примере для успешного создания исполняемого файла).