Avec cmake, comment pouvez-vous désactiver à la source s'appuie?

Je veux interdire à des gens de s'encombrer notre source arbre généré avec CMake fichiers... et, plus important encore, de les empêcher de marcher sur de l'existant Makefiles qui ne font pas partie du même processus de construction, nous sommes en utilisant CMake pour. (mieux de ne pas demander)

La façon que j'ai trouver pour faire ceci est de faire quelques lignes au dessus de mes 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 source de construire toujours crée la la CMakeFiles/ répertoire, et le CMakeCache.txt fichier dans l'arborescence des sources avant de l'erreur est levée.

Ai-je raté une meilleure façon de le faire?

  • Nous faisons exactement comme ça.
  • C'est la meilleure solution que j'ai trouvé jusqu'à présent. Vous pourrait rendre le message plus instructif, cependant: message(FATAL_ERROR "À la source s'appuie ne sont pas autorisés. Faire un dossier séparé pour la construction:\nmkdir construire; cd build; cmake ..\nBefore qui, supprimer les fichiers déjà créés:\grn -rf CMakeCache.txt CMakeFiles")
InformationsquelleAutor mpontillo | 2009-07-30