2
我們追溯地向我們的代碼庫添加了構件塊上層結構。這意味着新的命名空間規則(cpp)和新的文件夾結構。用於構建模塊的Cmake(文件夾包含源代碼)
我的問題涉及到我們的make文件環境(Cmake)的變化以及我們應該如何處理這種變化(我們完全困惑)。
我們的目標:即增加了塊在功能像 方式我們構建
- 一個 「全球性」 的CMakeLists.txt文件。
- 每塊構建工件(* .H,*的.cpp ...)應在子文件的CMakeLists.txt被定義裏面每個新 塊。
概述:
是:
+-src
+--block1.cpp
+--block1_1.cpp
+--block(n+1).cpp
+--CMakeLists.txt <- old global make file
+-include
+--block1.h
+--block1_1.h
+--block(n+1).h
應:
- Block 1
+- src
+-- block1.cpp
+-- block1_1.cpp
+- inlcude
+-- block1.h
+-- block1_1.h
**+- CMakeLists.txt** <- sub list file that handles target req. of Block 1
+ Block 2
+- ... (same structure as 1)
+ Block 3
+- ... (same structure as 1)
+-CMakeLists.txt <- global list file that adds Blocks to target
我們不想加塊構建工件的信息爲我們的全球列表文件(如添加aux_source_directory,include_directories)。原因是:這種方法有太多的塊,我們想用不同的塊來配置構建。
我很抱歉,但我不確定要理解您的問題;你想爲每個塊有不同的構建配置?這意味着頂級'CMakeLists.txt'不能通過調用'add_subdirectory()'來驅動整個項目? – piwi
是嗎?這總結了我想要做的事情。或者我想念什麼? – Thomas
你真正的問題是什麼?由於每個CMakeLists.txt都有自己的子範圍,因此使用標準的現代CMake很容易實現。除了作爲目標之外,這些街區不需要了解彼此的任何信息。儘可能使用'target_ *'命令。 – utopia