2011-08-11 21 views
13

Tengo un proyecto CMake donde estoy usando una biblioteca y ahora quiero probar mi código con una versión diferente de esa biblioteca. Puedo configurar INCLUDE_DIRECTORIES (y posiblemente más tarde también vinculando) en el siguiente ejemplo. Pero como solo quiero hacer esto temporalmente, me gustaría configurar manualmente esta ruta con ccmake/cmake-gui.¿Cómo señalar cmake en el directorio específico de la biblioteca?

¿Cómo puedo hacer esto?

project(min_example) 
cmake_minimum_required(VERSION 2.8) 

find_package(OpenCV REQUIRED) 
# Without the following line please: 
INCLUDE_DIRECTORIES("/home/me/src/opencv/install/include") 
add_executable(min_example main.cpp) 
target_link_libraries(min_example ${OpenCV_LIBS}) 

Respuesta

21

Esto debería ser posible mediante la variable de CMAKE_PREFIX_PATH sobre la configuración de su construcción. En el directorio del proyecto generará un directorio test_build y ejecute:

mkdir test_build 
cd test_build 
cmake -DCMAKE_PREFIX_PATH=/home/me/src/opencv/install .. 

establecer la variable de CMAKE_PREFIX_PATH hará que el comando find_package(OpenCV REQUIRED) recoger su instalación en OpenCV /home/me/src/opencv y establecer las variables de OpenCV_LIBS y OpenCV_INCLUDE_DIR en consecuencia.

Como alternativa, puede editar un archivo CMakeCache.txt de un directorio de compilación existente con el editor de la GUI de CMake y agregar allí la definición CMAKE_PREFIX_PATH. Tienes que volver a configurar tu proyecto entonces.

+0

No funciona. find_package (OpenCV) aún recoge las libs + include en/usr/local/... Utilicé tus tres líneas como se indica arriba. ¿Alguna idea de qué más podría probar? – Unapiedra

+0

@Unapiedra Establezca el CMAKE_PREFIX_PATH en el directorio de su casa que contiene el archivo OpenCVConfig.cmake (probablemente '/ home/me/src/opencv/install'). – sakra

+1

Gracias. En realidad es '.../install/share/OpenCV' pero eso lo hace. – Unapiedra

Cuestiones relacionadas