Cmake - 如何构建在不同子文件夹中分隔的项目

时间:2011-12-18 18:39:52

标签: cmake subdirectory

我正在尝试使用CMake构建一个大项目,但我在如何编写CMakeList.txt文件方面很困难。 我的项目在不同的文件夹中分开,每个文件夹包含一组或多或少相关的.hpp和.cpp文件,如下所示:

root 

   - memory
   -- Memory.cpp
   -- Memory.hpp
   -- MemoryManager.hpp
   -- MemoryManager.cpp
   -- CMakeLists.txt

   - tools
   -- Array.cpp
   -- Array.hpp
   -- CMakeLists.txt

   - main.cpp
   - CMakeLists.txt

我想将所有文件一起构建为可执行文件。我不想在每个子文件夹中构建库,因为我认为没有任何理由这样做。 我还想避免在位于项目根目录的CMakeLists.txt文件的ADD_EXECUTABLE命令中放置所有源文件的单个大列表。

您是否知道如何正确设置?

干杯,

微米。

1 个答案:

答案 0 :(得分:5)

您可以使用GLOB功能,例如:

file (GLOB _my_sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
  memory/*.cpp tools/*.cpp main.cpp)
add_executable (myprogbin ${_my_sources})
set_target_properties (myprogbin PROPERTIES OUTPUT_NAME myprog)

请参阅http://cmake.org/cmake/help/cmake-2-8-docs.html#command:file以获取参考资料

相关问题