自定义cmake FindXXX.cmake回退到默认位置

时间:2015-03-31 18:14:02

标签: cmake

我正在尝试将OpenSSL加载为外部包。我的问题是最新版本的OpenSSL要求cmake 3.1.2使用默认的FindOpenSSL.cmake。

http://public.kitware.com/Bug/bug_relationship_graph.php?bug_id=15386&graph=relation

有没有办法制作一个自定义的FindOpenSSL.cmake cmake_minimum_version(VERSION 3.1.2)然后是一个加载默认FindOpenSSL的命令?

如果用户选择OpenSSL的可选依赖项,我只希望我的包无法使用cmake_version< 3.1.2构建。

编辑:这个hacky FindOpenSSL.cmake有效,但id仍然喜欢更惯用的东西

cmake_minimum_required(VERSION 3.1.2)
SET(TEMP_PATH ${CMAKE_MODULE_PATH})
SET(CMAKE_MODULE_PATH "")
find_package(OpenSSL)
SET(CMAKE_MODULE_PATH ${TEMP_PATH}) 

1 个答案:

答案 0 :(得分:3)

只需从最新的CMake版本将文件Modules / FindOpenSSL.cmake复制到您的项目,并将其重命名为FindOpenSSLnew.cmake。

依赖于CMake版本,您可以从CMake或您的副本调用该文件:

if(CMAKE_VERSION VERSION_GREATER "3.1.2")
   Find(OpenSSL)
else()
   Find(OpenSSLnew)
endif()