J'ai un projet CMake dans lequel j'utilise une bibliothèque et je souhaite maintenant tester mon code avec une version différente de cette bibliothèque. Je peux définir INCLUDE_DIRECTORIES (et éventuellement plus tard, la liaison) dans l'exemple ci-dessous. Mais comme je ne veux le faire que temporairement, j'aimerais définir manuellement ce chemin avec ccmake/cmake-gui.
Comment puis-je faire cela?
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})
Cela devrait être possible en définissant la variable CMAKE_PREFIX_PATH
lors de la configuration de votre construction. Dans votre répertoire de projet, générez un répertoire test_build
et exécutez:
mkdir test_build
cd test_build
cmake -DCMAKE_PREFIX_PATH=/home/me/src/opencv/install ..
Si vous définissez la variable CMAKE_PREFIX_PATH
, la commande find_package(OpenCV REQUIRED)
choisit votre installation OpenCV dans /home/me/src/opencv
et définit les variables OpenCV_LIBS
et OpenCV_INCLUDE_DIR
en conséquence.
Vous pouvez également éditer un fichier CMakeCache.txt
d'un répertoire de construction existant avec l'éditeur d'interface graphique CMake et y ajouter la définition CMAKE_PREFIX_PATH
. Vous devez alors reconfigurer votre projet.
L'utilisation de config dans find_package limitera le chemin de recherche à OpenCV_DIR. Ceci utilisera la config cmake générée par opencv lors de la compilation pour configurer les chemins à inclure et les bibliothèques
set(OpenCV_DIR "<cusompath>" CACHE PATH '' ${SHOULD_FORCE_CACHE})
find_package(OpenCV REQUIRED CONFIG)