Cmake - Как построить проект, разделенный на разные подпапки - PullRequest
3 голосов
/ 18 декабря 2011

Я пытаюсь построить большой проект с помощью 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

Я хотел бы собрать все файлы вместе в исполняемый файл.Я не хочу создавать библиотеки в каждой подпапке, так как не вижу веской причины для этого.Я также хотел бы избежать размещения одного большого списка всех исходных файлов в команде ADD_EXECUTABLE файла CMakeLists.txt, расположенного в корне проекта.

Есть ли у вас какие-либо идеи о том, как это настроить?правильно?

ура,

м

1 Ответ

5 голосов
/ 18 декабря 2011

Вы можете использовать функцию 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 для справки

...