Bonjour tout le monde !
J'essaie de me mettre à CMake, après une décénie d'autoconf/automake, lassé par le coté POSIX-only de ce sytème. Et bien évidemment, je rencontre des problèmes.
J'ai un programme qui utilise le TR1 en partie. C'est mon premier problème - parce que dans un evironnement gcc/g++, le TR1 est situé dans un répertoire à part entière, et les headers sont accessibles via <tr1/cstdint> (par exemple) ; et bien évidemment, dans un environnement Visual C++, le TR1 est placé à la racine des répertoires include (donc le même fichier est accessible via <cstdint>). Du coup, il me faut faire la distinction.
Je peux la mettre en dur dans mon CMakeLists.txt, mais ce n'est pas très joli. J'aurais aimé laisser cmake découvrir l'emplacement du TR1. Du coup, je me suis dit : ça, c'est un job pour try_compile().
Mais je n'arrive pas à l'utiliser.
Mon "code":
Ca me semble suffisamment simple pour ne pas prêter à confusion, mais cmake échoue de manière systématique à effectuer correctement la tâche confiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SET(CHECKFILE ${PROJECT_BINARY_DIR}/check/check.cpp) FILE(WRITE ${CHECKFILE} "#include <cstdint>\nint main() { }") TRY_COMPILE(HAS_CSTDINT check ${CHECKFILE})
Le message renvoyé par cmake --debout-output --debug-trycompile ../.. (je précise que le générateur est Visual Studio 10, et que je suis dans le "visual studio command prompt" ; le compilateur est trouvé comme un grand, de même que les headers, les librairies, etc).
C'est super agaçant, au bout d'un moment. Je suis incapable d'en savoir plus (même avec --debug-trycompile ; je pensais que c'était fait pour...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CMake Error: The source directory "check/CMakeFiles/CMakeTmp" does not exist. Specify --help for usage, or press the help button on the CMake GUI. Called from: [1] C:/Personnel/Projets/temp/ekogen-0.3/CMakeLists.txt CMake Error: Internal CMake error, TryCompile configure of cmake failed Called from: [1] C:/Personnel/Projets/temp/ekogen-0.3/CMakeLists.txt
Est-ce que quelqu'un a déjà rencontré ce problème et/ou sais comment en venir à bout ? J'aimerais vraiment comprendre ce qui se passe, parce que j'ai plusieurs tests similaires à implémenter pour découvrir les features de l'environnement de développement.
Partager