CMake fixe au début du chemin pour FIND_PACKAGE?
Je suis en utilisant une nouvelle version de openssl que j'ai installé via Homebrew sur mon Mac et je me demandais si il y avait un moyen de définir un chemin d'accès de démarrage pour CMAKE est FIND_PACKAGE fonction? Maintenant, quand je tente de l'aide FIND_PACKAGE CMAKE trouve et ancienne version de openssl est utilisé par mon OS. Je suis actuellement en utilisant ce dans mon CMakeLists.txt
SET(OPENSSL_LIB_DIR /usr/local/Cellar/openssl/1.0.2f/lib)
INCLUDE_DIRECTORIES(/usr/local/Cellar/openssl/1.0.2f/include)
TARGET_LINK_LIBRARIES(mangaMe ${OPENSSL_LIB_DIR}/libcrypto.dylib ${OPENSSL_LIB_DIR}/libssl.dylib)
Le seul problème que j'ai avec, c'est que si mon openssl mises à jour que je dois mettre à jour manuellement la version dans le chemin. J'ai essayé de lecture sur le CMAKE FIND_PACKAGE de la documentation, mais je suis pas sûr de la de la de nombreuses variables de CHEMIN d'accès je voudrais l'utiliser pour obtenir l'effet que je recherche.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez soit définir
OPENSSL_ROOT_DIR
cmake variable ouOPENSSL_ROOT_DIR
env variable le chemin d'accès suivant:/usr/local/Cellar/openssl/*
et ensuite utiliserfind_package
. Exemple:message("OPENSSL_INCLUDE_DIR: " ${OPENSSL_INCLUDE_DIR})
FindOpenSSL.cmake
etFindBoost.cmake
fichiers. Vous pouvez vous les pairs à l'intérieur et découvrez ce que sont l'entrée et la sortie des variables de ce ou que le module package découverte.FindXXX.cmake
et il sera fait à la documentation si cmake a un ou comme un bonus, il va trouver un fichier cmake pour le package cmake ne dispose pas d'un module pour.Vous pouvez utiliser
OPENSSL_ROOT_DIR
avant d'appeler FindOpenSSL:include(FindOpenSSL)
était ce dont j'avais besoin. Pourquoi n'est-ce pas juste une partie de find_package? Cmake... si près... et pourtant si loin...Cmake avec FindOpenSSL.cmake module qui utilise OPENSSL_ROOT_DIR variable lors de la recherche pour les bibliothèques openssl.
Il est préférable d'utiliser cette interface, car il a de la manipulation de versions majeures.mineur,patch) et d'autres libs hadling etc.
vous pouvez l'utiliser via la ligne de commande lors de l'appel de cmake ou le mettre dans la source que d'autres ont fait.
cmake -DOPENSSL_ROOT_DIR=/chemin/vers/openssl ....
En général, si vous essayez de trouver d'autres bibliothèques pour lesquelles défaut cmake moudules ne sont pas fournit,vous pouvez utiliser
Des CONSEILS,des CHEMINS,PATH_SUFFIXES et d'autres variables comme la NO_DEFAULT_PATH (et d'autres NO_*) indique cmake ne pas regarder dans la norme des chemins.