Je veux interdire aux gens d'encombrer notre arborescence source avec les fichiers CMake générés ... et, surtout, les empêcher de marcher sur les Makefiles
existants qui ne font pas partie du même processus de construction que nous utilisons pour CMake. (Préférable de ne pas demander)Avec cmake, comment désactiver les builds in-source?
La façon dont je suis venu avec pour ce faire est d'avoir quelques lignes en haut de mon CMakeLists.txt
, comme suit:
if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
message(SEND_ERROR "In-source builds are not allowed.")
endif("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
Cependant, cette façon de faire semble trop verbeux. En outre, si j'essaie une version in-source, elle crée toujours le répertoire CMakeFiles/
et le fichier CMakeCache.txt
dans l'arborescence source avant le lancement de l'erreur.
Ai-je une meilleure façon de faire?
Nous le faisons exactement comme cela. – JesperE
C'est la meilleure solution que j'ai trouvée jusqu'ici. Vous pouvez rendre le message plus instructif, cependant: message (FATAL_ERROR "Les constructions In-source ne sont pas autorisées Créer un dossier séparé pour construire: \ nmkdir build; cd build; cmake .. \ nAvant cela, supprimez les fichiers déjà créés: \ nrm -rf CMakeCache.txt CMakeFiles ") – Tronic