因此,我正在從make轉換到cmake,並且由於源內目錄構建而陷入了一個微不足道的地步。cmake:在子目錄A中生成標題A在子目錄B中由目標傳遞需要B
以下情形:
指南A /生成一些頭,A.H。 爲了其它CPP /小時,非生成的文件以找到生成的報頭,我已經添加了${CMAKE_CURRENT_BINARY_DIR}
作爲包括(< --assumption 1這裏是最好的方法),在目錄乙然而現在
/(A /的兄弟目錄)有一個特定的源文件,它通過一個file.h(也在A /中)需要生成的Ah文件。
我現在面臨的問題是,file.h有參考啊是#include "A.h"
但在cmake的執行只包含了這一點目錄是:現在 B/
..什麼是在目錄B中包含Ah的最佳方式是,我應該如何硬編碼:
${CMAKE_BINARY_DIR}/path/to/include/for/A/A.h
雖然感覺不好另一種方法是將Ah文件生成到源目錄,但我經常看到建議不生成任何東西源目錄。
生成'Ah'成'$ {} CMAKE_CURRENT_BINARY_DIR /一些-tag'這個目錄添加到C++包括使用命令:'include_directories($ {} CMAKE_CURRENT_BINARY_DIR/some-現在你可以使用'#include「啊」'' –
好吧,但這大致就是我現在所擁有的,這允許A /中的文件找到Ah,但是當在B中構建目標時/他們然後找不到Ah,因爲CMAKE_CURRENT_BINARY_DIR然後是B /。 – hbogert
使用[PROJECT_BINARY_DIR](http://www.cmake.org/cmake/help/v3.0/variable/PROJECT_BINARY_DIR.html) –