Dependencies CMake:如何处理2.6中缺少但2.8中存在的FindXXX脚本
脚本FindHDF5.cmake在cmake2.8之后可用。我的软件运行在使用CMake 2.8或2.6的各种系统上 当我使用find_包(需要HDF5)时,它在2.8中工作,但当然不是在2.6中。因此,我想在我的项目中复制FindHDF5.cmake。但这是1。丑陋的和2。无法维护的Dependencies CMake:如何处理2.6中缺少但2.8中存在的FindXXX脚本,dependencies,cmake,compatibility,Dependencies,Cmake,Compatibility,脚本FindHDF5.cmake在cmake2.8之后可用。我的软件运行在使用CMake 2.8或2.6的各种系统上 当我使用find_包(需要HDF5)时,它在2.8中工作,但当然不是在2.6中。因此,我想在我的项目中复制FindHDF5.cmake。但这是1。丑陋的和2。无法维护的 你如何处理这种情况 您可以将cmake的模块路径设置为您想要的任何内容: set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /opt/common/cmake-backport
你如何处理这种情况 您可以将cmake的模块路径设置为您想要的任何内容:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /opt/common/cmake-backports)
在您的(Linux)发行版上有无限种填充自定义文件的方法。您可以自己制作一个.deb/.rpm,将模块文件放入/opt/common/。。或者在/usr/share中。。。或者为这些文件提供NFS网络目录
也许最简单的方法是将cmake 2.6-hosts更新为cmake-2.8。对于大多数发行版,您可以找到现成的后端口软件包。(例如Ubuntu 10.4)如果你真的需要使用
find_package(HDF5 REQUIRED)
那么您应该真正需要CMake 2.8或更高版本
如果必须使用CMake 2.6运行,则应提供自己的FindHDF5.CMake
如果必须,可以使用基于CMake版本的条件逻辑,例如:
if("${CMAKE_VERSION}" VERSION_LESS 2.8)
# Use your own "CMake/FindHDF5.make"...
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH})
endif()
但是,CMAKE_版本变量直到CMAKE 2.6.3才可用,因此您必须至少要求CMAKE 2.6.3才能可靠地使用这种构造
另见: