CMake et absolue de l'en-tête chemins

Je suis en train d'utiliser CMake pour construire mon projet de C++ et j'ai un problème dans l'en-tête chemins.

Depuis que j'utilise beaucoup de classes organisées dans plusieurs répertoires, tous mes incluent les déclarations sont avec des chemins absolus (donc pas besoin d'utiliser "../../"), mais lorsque vous essayez de faire le CMake-Makefile, il ne fonctionne tout simplement pas.

Personne ne sait comment les spécifier dans CMakeLists.txt que tous le sont avec des chemins absolus?


Ma sortie lors de la tentative de faire


~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:45:25: Utils/Utils.h: No such file or directory
~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:46:35: Utils/StreamTokenizer.h: No such file or directory

Mon CMakeLists.txt fichier :

#The following command allows the use of the "file" command
cmake_minimum_required(VERSION 2.6)  

#The declaration of the project
project(multiboost)  

#This allows recursive parsing of the source files
file(
    GLOB_RECURSE
    source_files
    *
    )  
list(REMOVE_ITEM source_files ./build/* )

#This indicates the target (the executable)  
add_executable(
    multiboost
    ${source_files} #EXCLUDE_FROM_ALL build/
    )
  • pouvez-vous prvodie un petit exemple (source/en-tête/cmake)? aussi, des chemins absolus sont généralement une mauvaise idée. La plus belle façon de le faire est de l'omi, la manière par exemple de stimuler t-il: indiquez une seule racine qui se trouve dans le chemin du compilateur et de commencer à partir de là.
  • Oui, exactement, ce que je suis en train de faire : Dire que j'ai src/ dir qui contient tous les sous-dossiers de la source ainsi que le fichier principal. Dans tous mes incluent les déclarations, je n'ai qu'à spécifier le chemin d'accès de la src/. Dans mon projet XCode, il fonctionne très bien mais je n'ai pas encore comment le faire dans CMake. (Merci pour votre réponse ;o) )
  • ouais mais nous avons encore besoin d'un exemple + plus d'info ("il n'a tout simplement pas de travail" est aussi énigmatique qu'une description de l'erreur peut obtenir, ne nous dites pas n'importe quoi)
  • Aparté: Ne pas utiliser une boule de construire votre liste de fichiers. Spécifier à la main. Ceci est important car il vous oblige à modifier CMakeLists.txt lorsque vous ajoutez/supprimez un fichier, forçant cmake pour ré-exécuter lorsque vous exécutez make. Si vous ne le faites pas, les nouvelles ou les fichiers supprimés ne seront pas ramassés, conduisant à la rupture.
InformationsquelleAutor Archy | 2010-09-28