Файлы cpp не создаются для capnp_generate_cpp () - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть файл 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, он также не выдает никакой ошибки.чего мне здесь не хватает?

1 Ответ

0 голосов
/ 13 февраля 2019

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

...