web-dev-qa-db-fra.com

CMAKE_TOOLCHAIN_FILE n'a pas été utilisé par le projet

Cmake donne cet avertissement lors de la construction d'un script tiers:

CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_TOOLCHAIN_FILE

Y a-t-il des conseils courants que dois-je vérifier ou comment résoudre ce problème?

39
pleerock

C'est l'avertissement standard que vous donne lorsque vous lui donnez une option de ligne de commande qu'elle n'utilise pas. Cela donne -DFOO=bar à cmake lorsque le fichier CMakeLists.txt n’utilise pas la variable FOO.

C’est un cas spécial: CMAKE_TOOLCHAIN_FILE est utilisé par CMake la première fois que vous configurez votre construction, mais comme vous ne pouvez pas modifier la chaîne d’outils d’une version déjà configurée, elle est ignorée une fois sur deux. .

Comme @Answeror l'a dit, vous pouvez ignorer cet avertissement, mais si cela vous dérange vraiment, vous pouvez le cacher en donnant --no-warn-unused-cli à cmake.

42
Guillaume

Si vous recevez ce message avec CLion après que vous avez défini l'option -DCMAKE_TOOLCHAIN_FILE=xxx, vous voudrez supprimer tous les répertoires de construction de CMake. 

Faire

Tools-> CMake -> Show Generated CMake Files in File Manager

puis supprimez tous les répertoires de construction. Alors fais

Tools-> CMake -> Reload the CMake Project

Une fois que vous faites cela, vous aurez toujours l'avertissement, mais au moins, il sera observé lors de la première exécution de cmake.

6
Mark Lakata

Les raisons de cette variable spécifique non utilisée ont déjà été expliquées dans la réponse de @ Guillaume. Un moyen simple et utile de contourner l'avertissement concernant la variable non utilisée consiste à l'utiliser dans un message d'état.

message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")
0
Roland Sarrazin