Je suis assez nouveau dans CMake, et j'ai lu quelques tutoriels sur la façon de l'utiliser, et j'ai écrit quelques 50 lignes compliquées de CMake script afin de faire un programme pour 3 compilateurs différents. Ceci conclut probablement toutes mes connaissances en CMake.
Mon problème est que j'ai du code source, dont je ne veux pas toucher/se mêler au dossier lorsque je crée le programme. Je veux que tout CMake et make
les fichiers et dossiers de sortie à placer dans ../Compile/
J'ai donc modifié quelques variables dans mon script CMake pour cela, et cela a fonctionné pendant quelques temps lorsque j'ai fait quelque chose comme ça sur mon ordinateur portable :
Compile$ cmake ../src
Compile$ make
Avec cela, j'ai eu une sortie propre dans le dossier où je suis maintenant, ce qui est exactement ce que je recherche.
Maintenant, j'ai déménagé sur un autre ordinateur, et j'ai recompilé CMake 2.8.11.2, et je suis presque de retour à la case départ ! Il compile toujours la chose dans le src
où mon CMakeLists.txt
est situé.
La partie où je choisis le répertoire dans mon CMake script est la suivante :
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/../Compile/)
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(LIBRARY_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${dir})
set(CMAKE_BUILD_FILES_DIRECTORY ${dir})
set(CMAKE_BUILD_DIRECTORY ${dir})
set(CMAKE_BINARY_DIR ${dir})
SET(EXECUTABLE_OUTPUT_PATH ${dir})
SET(LIBRARY_OUTPUT_PATH ${dir}lib)
SET(CMAKE_CACHEFILE_DIR ${dir})
Et maintenant, ça se termine toujours par :
-- Build files have been written to: /.../src
Est-ce que j'ai manqué quelque chose ?