2015-03-31 5 views
2

Я пытаюсь загрузить OpenSSL в качестве внешнего пакета. Моя проблема заключается в том, что для последней версии OpenSSL для cmake 3.1.2 требуется использовать файл FindOpenSSL.cmake по умолчанию.custom cmake FindXXX.cmake fallback to default location

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

Есть ли способ, чтобы сделать пользовательский FindOpenSSL.cmake, что только имеет cmake_minimum_version (VERSION 3.1.2), а затем команду для загрузки FindOpenSSL по умолчанию?

Я хочу, чтобы мой пакет не смог построить с cmake_version < 3.1.2 если пользователь выбирает дополнительную зависимость от OpenSSL.

Edit: Это Hacky FindOpenSSL.cmake работает, но идентификатор еще как-то более идиоматических

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}) 

ответ

3

Просто скопируйте из последней версии CMake Модули файлов/FindOpenSSL.cmake к вашему проекту и переименовать его в FindOpenSSLnew. CMake.

В зависимости от версии CMake, вы называете файл из CMake или копии:

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

Спасибо, что на самом деле, лучше, чем я имел в виду. – user514156