2013-07-21 67 views
1

我有一個項目的結構是這樣的:正確cmake的安裝,包括頭

─root 
    ├──src 
    │ ├──main.cpp 
    │ └──CMakeLists.txt[2] 
    ├──build 
    ├──out 
    ├──inc 
    ├──dep 
    │ ├──log 
    │ │ ├──include 
    │ │ │  └──log.h 
    │ │ ├──src 
    │ │ │ └──log.cpp 
    │ │ └──CMakeLists.txt[4] 
    │ └──CMakeLists.txt[3] 
    └──CMakeLists.txt[1] 

dep我有一個日誌庫,這是一個外部的Git倉庫用自己CMakeLists.txt文件。

主要CMakeLists.txt(標記爲[1])是:

cmake_minimum_required(VERSION 2.6) 
set(APP_ROOT ${PROJECT_SOURCE_DIR}) 
add_subdirectory(dep) 
add_subdirectory(src) 

CMakeLists.txt(標記爲[2])用於當前的項目的代碼是:

add_executable(app main.cpp) 
target_link_libraries(app log) 
include_directories("${APP_ROOT}/inc") 

CMakeLists.txt(標作爲[3])的依賴關係是:

add_subdirectory(log) 

我是什麼tr要做的是將dep/log/include文件夾的內容複製到一個名爲inc/log的新文件夾中,以便在main.cpp中我可以編寫類似#include <log/log.h>的東西,但我不明白。我想避免編輯記錄器項目的CMakeLists.txt

+0

對不起,不能有助於回答,但不禁按下+1的ASCII圖形。 –

+0

您的解決方案對我來說很好 - 我會將其添加爲答案。 – Fraser

+0

將日誌的包含目錄添加到編譯器包含路徑不是更簡單嗎? – szx

回答

2

我的解決辦法:在/dep/CMakeLists.txt我加

file(MAKE_DIRECTORY "${APP_ROOT}/inc/log") 
file(COPY "log/include/" DESTINATION "${APP_ROOT}/inc/log")