Actualmente estoy tratando de ejecutar CMake para mi proyecto (en Windows). Quiero usar una ubicación personalizada donde estén todas las bibliotecas instaladas. CMake para informar sobre ese camino traté de hacer eso:cmake - find_library - ubicación personalizada de la biblioteca
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs)
Pero cuando trato de encontrar la biblioteca con
find_library(CURL_LIBRARY NAMES curl curllib libcurl_imp curllib_static)
CMake no puede encontrarlo. Cuando me juego mi camino prefijo a
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs/curl)
... la biblioteca se encuentra.
Así que mi pregunta es: ¿Cómo puedo configurar CMake adecuadamente para trabajar con un structore directorio a la ubicación personalizada que se parece a lo siguiente:
D:/develop/cmake/libs/
-> libA
-> include
-> lib
-> libB
-> include
-> lib
-> ...
-> include
-> lib
En "incluir" se encuentran las cabeceras públicos y en "lib "son las bibliotecas compiladas.
espero que alguien me puede ayudar - Gracias de antemano
edición: La solución actual para mí es, para hacer esto antes de que yo busco bibliotecas:
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()
Pero de esa manera el módulo por defecto para boost no lo encontrará hasta que la estructura del directorio de boost sea un poco diferente.
boost -> include -> boost-1_50 -> *.hpp
Cuando muevo el contenido si "impulsar-1_50" a "incluir" la biblioteca se puede encontrar, pero de esa manera no es posible para manejar múltiples versiones verdad?
En primer lugar, ¿por qué estás configurando CMAKE_PREFIX_PATH dentro CMakeLists.txt? Esto no funcionará si otro chico intentara compilar tu proyecto. – arrowd
Fue solo para pruebas. Si funcionara, usaría una variable de entorno – Daniel