Comment ajouter des fichiers source dans un autre dossier

Je suis en utilisant cmake pour construire mon projet en C++. Supposons que j'ai les répertoires suivants sur mon dossier Source

Source
  |_Dir1
  |   |_Class.cpp
  |   |_Class.hpp
  |
  |_Dir2
      |_Main.cpp

Dans Dir1 il y a une classe avec son en-tête et les fichiers de mise en œuvre (Class.cpp et la Classe.ppr).

Dans Dir2 il y a le principal de l'application qui utilise la classe de Dir1

Quelle est la bonne façon de dire au CMakeLists dans Dir2 pour construire l'exécutable avec Dir1/Class.cpp fichier?

EDIT: Pour être plus précis, je veux définir que le fichier source pour Class.cpp doit être utilisé dans Dir1 de l'CMakeLists.txt et pas dans Dir2 de l'. Faire de l'autre la façon dont se sent mal de plaine pour moi et c'est difficile à utiliser, donc si il y a une raison qu'ils sont l'application de me faire quelques précisions sur le sujet, ce serait bien.

Ce que je suis en train de faire est de coder en dur la Class.cpp l'emplacement du fichier dans Dir2/CMakeLists.txt mais ça ne marche pas quand j'ai un tas de classes interagissent ensemble.

  • Vous pouvez utiliser le FILE(GLOB ...) l'action afin de recueillir un tas de fichiers avec une extension particulière.
  • Mais ne pas travailler uniquement à l'intérieur de Dir2? Je veux utiliser le fichier cpp dans Dir1. J'ai particulièrement envie de ne pas avoir à spécifier tous les fichiers dans le dossier exécutable du CMakeLists mais faire de chaque dossier enregistrer le cpp elle l'a fait.
  • double possible de CMake - ajouter Automatiquement tous les fichiers dans un dossier à une cible?
  • Vous pouvez utiliser le RELATIVE option pour spécifier quel répertoire vous voulez. Ce sujet de recherche dans CMake manuel de l'?
  • Je ne suis pas sûr de comprendre ce que la fonction relative n'. Êtes-vous sûr de ce qui m'aide en quelque sorte à définir les fichiers source pour mon exécutable à partir d'un autre dossier?
  • Vous devez juste créer 2 ensembles de noms de fichier source et les ajouter à la fois à votre ADD_EXECUTABLE.
  • Soit j'ai eu la très fondements de CMake mal ou je ne suis pas la compréhension de ce que vous me dites à tous. Pourriez-vous être plus précis sur ce que doit je faire?
  • J'ai posté une réponse expliquant ce que je veux dire en détail.

InformationsquelleAutor Setzer22 | 2014-09-01