В настоящее время я пытаюсь запустить CMake для моего проекта (в окнах). Я хочу использовать настраиваемое место, где установлены все библиотеки. Чтобы сообщить CMake об этом пути, я попытался сделать это:
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs)
Но когда я пытаюсь найти библиотеку с
find_library(CURL_LIBRARY NAMES curl curllib libcurl_imp curllib_static)
CMake не может найти его. Когда я устанавливаю свой префиксный путь на
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs/curl)
... находится библиотека.
Итак, мой вопрос: Как я могу правильно настроить CMake для работы с структурированным каталогом в настраиваемом месте, которое выглядит так:
D:/develop/cmake/libs/
-> libA
-> include
-> lib
-> libB
-> include
-> lib
-> ...
-> include
-> lib
В "include" лежат публичные заголовки, а в "lib" - скомпилированные библиотеки.
Надеюсь, кто-то может мне помочь - Спасибо заранее
изменить: Нынешний обходной путь для меня - сделать это, прежде чем я буду искать библиотеки:
set(CUSTOM_LIBRARY_PATH D:/develop/cmake/libs)
file(GLOB sub-dir ${CUSTOM_LIBRARY_PATH}/*)
foreach(dir ${sub-dir})
if(IS_DIRECTORY ${dir})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${dir})
endif()
endforeach()
Но таким образом модуль по умолчанию для повышения не найдет его до тех пор, пока структура каталогов boost не будет немного отличаться.
boost -> include -> boost-1_50 -> *.hpp
Когда я перемещаю содержимое, если "boost-1_50" "включить", библиотека может быть найдена, но таким образом невозможно обрабатывать несколько версий правильно?