Как избежать, чтобы пользователи вручную устанавливали зависимости GDAL с CMake? - PullRequest
1 голос
/ 07 января 2020

Я знаю, как связать GDAL с приложением C ++, используя CMake. Далее процедура описана в два этапа: (1) установка зависимости в системе и (2) ее привязка к приложению C ++ (см. здесь для получения более подробной информации).

  1. Установите GDAL (здесь, в Ubuntu 18.04)

    • Добавьте PPA к источникам: sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
    • Обновление: sudo apt-get update
    • Установите GDAL и файлы его разработки: sudo apt-get install gdal-bin libgdal-dev
    • Проверка установки: gdalinfo --version
  2. Связь GDAL с приложением C ++ с использованием CMake:

        # find system installed GDAL package with predefined CMake variable for finding GDAL
        find_package(GDAL REQUIRED)
        ...
        # Specify location of GDAL header files
        include_directories( include ${GDAL_INCLUDE_DIRS})
        ...
        # Specify GDAL libraries to link your cpp executable target against
        target_link_libraries( your_cpp_executable_target_name ${GDAL_LIBRARIES})
    

Каков наиболее удобный способ избежать установки пользователем зависимости вручную? То есть, как убедиться, что отсутствующая зависимость не остановит конфигурацию, и загрузить / построить зависимость, если она не найдена в системе?

Для управления зависимостью Boost я использовал функцию CMake ExternalProject с шаблон Superbuild, и я думаю, что подобный подход должен быть применим для управления зависимостями GDAL. Однако я очень новичок в современном CMake , и я изо всех сил пытаюсь адаптировать этот проект CMake, обрабатывающий зависимость Boost , для управления зависимостью GDAL.

Любое общее или шаг пошаговые инструкции, помогающие сделать (или веские причины этого не делать).

...