Я пытаюсь написать модуль поиска для пакета, который я установил.Но у меня возникают проблемы с пониманием функций CMake.
Вот фрагмент моего кода.
find_package(PkgConfig)
pkg_check_modules(PC_zcm QUIET zcm)
find_path(zcm_INCLUDE_DIR
NAMES zcm.h
PATHS $ENV{PATH}
)
mark_as_advanced(zcm_FOUND zcm_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(zcm DEFAULT_MSG
REQUIRED_VARS zcm_INCLUDE_DIR
)
find_path()
может найти мой zcm_INCLUDE_DIR
просто отлично: /usr/bin/zcm/usr/local/include
Но find_package_handle_standard_args () дает -- Could NOT find zcm (missing: REQUIRED_VARS)
Мое дерево каталогов выглядит так:
└── zcm
├── eventlog.h
├── json
│ ├── json-forwards.h
│ └── json.h
├── message_tracker.hpp
├── tools
│ ├── IndexerPlugin.hpp
│ └── TranscoderPlugin.hpp
├── transport
│ └── generic_serial_transport.h
├── transport.h
├── transport_register.hpp
├── transport_registrar.h
├── url.h
├── util
│ └── Filter.hpp
├── zcm-cpp-impl.hpp
├── zcm-cpp.hpp
├── zcm.h
└── zcm_coretypes.h
Насколько я понимаю, find_package_handle_standard_args()
пытается найти пакет по путиЭто звучит так, как будто это будет просто, поскольку путь уже определен.
Что касается REQUIRED_VARS
, то в документах просто говорится: «Укажите переменные, необходимые для этого пакета».Который мало что говорит для такого новичка, как я.