CMAKE ExternalProject_Add (Как указать путь поиска для плагина) - PullRequest
0 голосов
/ 11 сентября 2018

Я использую Ubuntu 16.04 и CMake ExternalProject_Add для установки программного обеспечения PCL и PDAL для моего собственного проекта.

Я хочу связать PDAL и PCL, поскольку у PDAL есть опция для сборки PCL в качестве плагина. По сути, мой CMake-скрипт для PCL будет выполняться первым для установки PCL по определенному пути (пример) build/src/pcl. Затем PDAL установится дальше и будет искать PCL для ссылки в качестве плагина. Мой сценарий CMake для PDAL

set(_proj_name pdal)
set(_SB_BINARY_DIR "${SB_BINARY_DIR}/${_proj_name}")

ExternalProject_Add(${_proj_name}
  DEPENDS           pcl
  PREFIX            ${_SB_BINARY_DIR}
  #--Download step--------------
  DOWNLOAD_DIR      ${SB_DOWNLOAD_DIR}
  URL               https://github.com/PDAL/PDAL/archive/1.7.2.tar.gz
  #--Update/Patch step----------
  UPDATE_COMMAND    ""
  #--Configure step-------------
  SOURCE_DIR        ${SB_SOURCE_DIR}/${_proj_name}
  CMAKE_ARGS
    -DBUILD_PLUGIN_PCL=ON
    -DBUILD_PLUGIN_PGPOINTCLOUD=OFF
    -DBUILD_PLUGIN_CPD=OFF
    -DBUILD_PLUGIN_GREYHOUND=OFF
    -DBUILD_PLUGIN_ICEBRIDGE=OFF
    -DBUILD_PLUGIN_SQLITE=OFF
    -DBUILD_PLUGIN_RIVLIB=OFF
    -DBUILD_PLUGIN_PYTHON=OFF
    -DENABLE_CTEST=OFF
    -DWITH_APPS=ON
    -DWITH_LAZPERF=OFF
    -DWITH_TESTS=OFF
    -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_INSTALL_PREFIX:PATH=${SB_INSTALL_DIR}
  #--Build step-----------------
  BINARY_DIR        ${_SB_BINARY_DIR}
  #--Install step---------------
  INSTALL_DIR       ${SB_INSTALL_DIR}
)

Скрипт PDAL CMake обнаружил, что опция построения плагина PCL включена, но он попытался найти функции и библиотеку PCL в usr/lib/ или usr/share/local.

Какие еще аргументы CMake я могу включить, чтобы заставить сценарий PDAL CMake искать PCL вместо build/src/pcl?

Я пытался включить DPCL_DIR = build/src/pcl и DCMAKE_PREFIX_PATH = build/src/pcl, но безрезультатно. Любая помощь или руководство в правильном направлении приветствуется!

...