Как добавить файлы в проект Eclipse CDT с помощью CMake?
Вопрос
У меня возникла проблема с добавлением исходных файлов и файлов заголовков в мой проект 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
Проблема, с которой я столкнулся, заключалась в том, что я сделал сборку «из исходного кода» вместо сборки «вне исходного кода».Теперь все работает нормально, и на самом деле в Wiki было много информации об этом, но я почему-то ее неправильно понял.
Другие советы
Я понимаю, что прошло много времени с тех пор, как вы опубликовали это, но, кстати, у меня это нормально работает с версиями CMake 2.6 или 2.7 (магистраль), генерирующими для Eclipse/Ganymede.Что я делаю, это сначала запускаю
cmake -G "Eclipse CDT4 - Unix Makefiles" /path/to/src
который генерирует файлы проекта Eclipse, а также файлы makefile, затем «Импортировать проект» в Eclipse.
Прекрасно работает...
хитрый
Я использую CMake 2.4, а не 2.6, но в версии 2.4 они специально предостерегают от использования GLOB-объектов для поиска файлов для сборки.
Это связано с тем, что он заметит, добавляются или удаляются новые файлы, поэтому не сможет выяснить зависимости.
Если вам нужно явно добавить файлы в CMakeLists.txt, тогда этот файл будет новее, чем файлы makefile и файлы кэша.Таким образом, CMake будет знать, как их восстановить.
Если файлы добавляются с помощью glob, файлы CMake не знают об изменениях, когда вы добавляете новые файлы, поэтому CMake не знает, что ему необходимо повторно создавать файлы makefile и т. д.То же самое касается обычных make-файлов и проектов Visual Studio.
Если в документации CMake 2.6 явно не указано, что добавлять такие файлы можно, я бы этого избегал.Управлять исходными файлами в cmake не так уж и сложно.Как часто вы добавляете новые файлы?