c++ - 如何避免用户使用 CMake 手动安装 GDAL 依赖项?
问题描述
我知道如何使用 CMake 将 GDAL 与 C++ 应用程序链接起来。该过程在下文中总结为两个步骤:(1)在系统上安装依赖项,(2)将其链接到 C++ 应用程序(有关详细信息,请参见此处)。
安装 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
- 将 PPA 添加到源中:
使用 CMake 将 GDAL 与 C++ 应用程序链接:
# 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 依赖,我使用了ExternalProject
带有 Superbuild 模式的 CMake 功能,我认为类似的方法应该与管理 GDAL 依赖相关。但是,我对现代 CMake非常陌生,我很难适应这个处理 Boost 依赖项的 CMake 项目来管理 GDAL 依赖项。
任何有助于这样做的一般或逐步指导(或不这样做的充分理由)都会有所帮助。