2011-04-14 4 views
1

Utilisation de CMake J'utilise une bibliothèque tierce, TinyThread ++, c'est un simple gestionnaire de bibliothèque de threads qui contient uniquement 1 fichier source et 2 fichiers d'en-tête.CMake: exporter des en-têtes tiers dans le répertoire

Dans mon projet, je CMakeList.txt ajouté la ligne suivante:

add_library(TinyThread STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../../third_party/TinyThread/source/tinythread.cpp) 

Et puis on ajoute une dépendance à cette bibliothèque à mon exécutable que cela fonctionne très bien. J'essaie de comprendre comment copier ou exporter les deux fichiers d'en-tête dans un répertoire d'inclusion commun que j'utilise dans mon projet.

${CMAKE_CURRENT_SOURCE_DIR}/../../include 

Quelle est la méthode recommandée pour ce faire?

Répondre

1

Si vous voulez simplement « utiliser » lors de la compilation de ces d'en-têtes, vous pouvez utiliser include_directories() comme Naszta explique. Si vous voulez vraiment copier les fichiers, vous pouvez utiliser configure_file() ou file(COPY ...) (vérifiez le bas de la section sur la commande file()).

1

Je pense que vous devriez faire quelque chose comme ceci:

SET(TINY_THREAD_INCLUDE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" CACHE PATH "TinyThread include path") 
SET(TINY_THREAD_SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/tinythread.cpp" CACHE FILEPATH "TinyThread source file") 
... 
INCLUDE_DIRECTORIES(${TINY_THREAD_INCLUDE_PATH}) 
ADD_LIBRARY(TinyThread STATIC ${TINY_THREAD_SOURCE_FILE}) 

De cette façon, vous pouvez les réutiliser plus tard par leur nom. Si vous voulez les cacher en mode normal:

MARK_AS_ADVANCED(TINY_THREAD_INCLUDE_PATH TINY_THREAD_SOURCE_FILE) 
Questions connexes