Как добавить файлы в проект Eclipse CDT с помощью CMake? - PullRequest
2 голосов
/ 20 мая 2009

У меня проблемы с добавлением исходных файлов и файлов заголовков в мой проект Eclipse CDT с CMake. В моем тестовом проекте (который генерирует и строит нормально) у меня есть следующий CMakeLists.txt:

cmake_minimum_required(VERSION 2.6)

project(WINCA)

file(GLOB WINCA_SRC_BASE "${WINCA_SOURCE_DIR}/src/*.cpp")
file(GLOB WINCA_SRC_HPP_BASE "${WINCA_SOURCE_DIR}/inc/*.hpp")

add_library(WINCABase ${WINCA_SRC_BASE} ${WINCA_SRC_HPP_BASE})

Это работает нормально, но полученные файлы проекта Eclipse не содержат ссылок на исходные файлы или файлы заголовков. Кто-нибудь знает почему? Есть ли какая-либо другая команда cmake, которую я должен использовать для фактического добавления файлов в проект?

Ответы [ 3 ]

5 голосов
/ 14 июня 2009

Я понимаю, что прошло уже много времени с тех пор, как вы опубликовали это, но, между прочим, оно отлично работает для меня с версиями CMake 2.6 или 2.7 (trunk), генерирующими для Eclipse / Ganymede. То, что я делаю, это первый запуск

cmake -G "Eclipse CDT4 - Unix Makefiles" /path/to/src

, который генерирует файлы проекта Eclipse, а также файлы makefile, а затем «Импортировать проект» в Eclipse.

Прекрасно работает ...

хитрая

3 голосов
/ 20 мая 2009

Я использую CMake 2.4, а не 2.6, но в 2.4 они специально предупреждают против использования GLOB для поиска файлов для сборки.

Это потому, что он заметит, будут ли новые файлы добавлены или удалены, поэтому он не сможет выяснить зависимости.

Если вам необходимо явно добавить файлы в ваш файл CMakeLists.txt, тогда этот файл будет новее, чем файлы makefile и файлы кэша. Таким образом, CMake будет знать, чтобы восстановить их.

Если файлы добавляются с глобусом, то нет файлов. CMake знает об изменениях, когда вы добавляете новые файлы, поэтому CMake не знает, что ему нужно регенерировать make-файлы и т. Д. Это то же самое для обычных make-файлов и проектов Visual Studio.

Если в документации CMake 2.6 явно не указано, что добавлять файлы можно, я бы этого не допустил. Управлять исходными файлами в cmake не так сложно. Как часто вы добавляете новые файлы?

1 голос
/ 15 июня 2009

Проблема, с которой я столкнулся, заключалась в том, что я сделал сборку «из исходного кода» вместо сборки «вне источника». Теперь он работает нормально, и в Вики было много информации об этом, но почему-то я неправильно понял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...