Поддержка Cap’n Proto CMake: CAPNP_LIB_CAPNP-JSON НЕ ОТНОСИТСЯ

Почему я должен установить

set(CAPNP_LIB_CAPNP-JSON "")

в моем CMakeLists.txt, чтобы не получить ошибку? Ошибка в следующем:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CAPNP_LIB_CAPNP-JSON (ADVANCED)
linked by target "client" in directory <...>
linked by target "server" in directory <...>

Я использую поддержку capnproto CMake путем копирования Файл cmake включен в исходный код capnproto в мой проект и в том числе вручную. (Есть ли лучший / стандартный способ сделать это? Чувствует себя хакером.) Остальное просто взято из инструкций файла CMake.

Фрагмент CMake:

# so capnp cmake plugin is found
set(CapnProto_DIR "${CMAKE_CURRENT_SOURCE_DIR}/etc/cmake")
# for some reason there is some json lib or something that isn't found?
#set(CAPNP_LIB_CAPNP-JSON "")
find_package(CapnProto REQUIRED)
include_directories(${CAPNP_INCLUDE_DIRS})
add_definitions(${CAPNP_DEFINITIONS})
set(CAPNPC_SRC_PREFIX "src/capnp")
# capnp out of source config
set(CAPNPC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
include_directories(${CAPNPC_OUTPUT_DIR})
# gen cpp
capnp_generate_cpp(CAPNP_SRCS CAPNP_HDRS
src/capnp/schema.capnp
)

CMake 3.6.2, сборка с использованием встроенных команд сборки CLion. capnp устанавливается через homebrew, последняя версия.

Почему я получаю сообщение об ошибке JSON? О чем это?

Кроме того, есть ли лучший способ для включения официального файла Cap’n Proto CMake? Похоже, он не распространяется с заголовочными и библиотечными файлами при установке через homebrew.

0

Решение

Оказывается, поддержка кодирования / декодирования json — еще не выпущенная (октябрь 2016 г.) функция Cap’n Proto, и попытка использовать файл .cmake из основной ветки с последней выпущенной версией вызывает этот конфликт.

Возможные решения:

1) Используйте обходной путь, размещенный в вопросе, т.е.

set(CAPNP_LIB_CAPNP-JSON "") # add this before next line
find_package(CapnProto REQUIRED)

2) Используйте выпущенную версию скрипта .cmake здесь: FindCapnProto.cmake

3) Соберите и установите Cap’n Proto из исходного кода, используйте с последним скриптом .cmake.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]