Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Добавление файлов исходников с Cmake


Автор: GwinnBleidd 2.8.2009, 11:35
Недавно начал использовать CMake и почти сразу столкнулся со следующей проблемой: 
нужно собрать с++ проект, исходники лежат в нескольких папках. Как указать эти исходники в качестве необходимых для компиляции/линковки?

К примеру нужно подкинуть каталог dir1 c файлами src1.cpp и src2.cpp. Как это сделать??
Ничего кроме добавления файлов вручную в CMakeList.txt не придумал:

ADD_EXECUTABLE(execname main.cpp dir1/src1.cpp dir1/src2.cpp)          :(

Подскажите, может есть более простой способ, не требующий ручного редактирования файла CMakeList.txt

Спасибо.

ЗЫ: ОС: debian squeeze,  IDE: KDevelop

Автор: bilbobagginz 2.8.2009, 14:27
может 
Код

ADD_SUBDIRS(тыдынц)


?

Автор: GwinnBleidd 2.8.2009, 14:41
увы нет :(
пишет 
Код

CMake Error at CMakeLists.txt:11 (ADD_SUBDIRS):
Unknown CMake command "ADD_SUBDIRS".


PS:используется cmake версии 2.6.4

Автор: nickless 2.8.2009, 14:52
Цитата(GwinnBleidd @  2.8.2009,  10:35 Найти цитируемый пост)
может есть более простой способ, не требующий ручного редактирования файла CMakeList.txt

Куда уж тут проще? Разве что если CMake прочитает твои мысли и сам отредактирует файл...


А если серьёзно, FILE(GLOB ...) http://www.cmake.org/Wiki/CMake:How_To_Process_Lots_Of_Input_Files.

Добавлено через 2 минуты и 15 секунд
Модератор: Тема перенесена из "http://forum.vingrad.ru/forum/Linux-Unix-software.html"

Автор: vinick 3.8.2009, 01:28
Если требуется добавлять все файлы исходников из каталогов, то можно попробовать такую конструкцию
Код

AUX_SOURCE_DIRECTORY(dir1 SRC1)
AUX_SOURCE_DIRECTORY(dir2 SRC2)
AUX_SOURCE_DIRECTORY(. SRC3)
ADD_EXECUTABLE(execname ${SRC1} ${SRC2} ${SRC3})


А вобще если исходники разнесены по разным каталогам, то не проще ли будет каждый каталог собирать как статическую библиотеку?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)