Cmake и Eclipse Mutliple цели
Я новичок в мире cmake и даже не уверен, возможно ли то, чего я пытаюсь достичь, или нет.
В настоящее время у меня есть файл проекта eclipse, который содержит много целей (у них есть несколько общих файлов, некоторые другие (для этого я использовал исключения в Eclipse)).
Один из моих коллег использует для этого CLion, поэтому он создал для этого файлы CmakeLists.txt. Можно ли использовать эти файлы CmakeLists.txt для создания проекта в Eclipse? Возможно ли иметь таким образом несколько целей в одном файле проекта?
2 ответа
Можно ли использовать эти файлы CmakeLists.txt для создания проекта в Eclipse?
Да, используйте следующее из вашего исходного корня для генерации файлов проекта Eclipse, которые поддерживают сборки из исходного кода.
$ cmake -G"Eclipse CDT4 - Unix Makefiles" .
Если вы хотите делать сборки из исходного кода, есть несколько недостатков, о которых следует знать. Взгляните на эту вики-страницу cmake о генераторе Eclipse CDT для получения более подробной информации.
Обратите внимание, что Eclipse также поддерживает импорт проектов из существующих make-файлов, что означает, что вы можете просто использовать генератор "Unix Makefile" для генерации make-файлов и импорта из них.
Посмотрите эту страницу cmake wiki для подробностей об этом
Возможно ли иметь таким образом несколько целей в одном файле проекта?
Да, это. Все цели, указанные в вашем CMakeLists.txt
файл (ы) будет включен в сгенерированный файл проекта.
Спасибо за быстрый ответ. Я посмотрел на то, что вы мне прислали, но моя индексация все еще не работает. В моем проекте есть следующая структура: папка main с main.c Папка платформы с тремя разными папками: папка a с файлом ac, папка b с файлом bc и папка cc, и один файл platform.h, общий для всех этих файлов с объявлением функции "платформа ()". Основная функция вызывает функцию "platform()" из platform.h, определение которой отличается для каждой цели (a, b и c соответственно определены в файлах ac, bc и cc). Когда я создаю проект eclipse, я получаю папку с именем "[Targets]", но индексация не работает, что означает, что она не показывает мне функцию от правильной цели.
Можно ли иметь возможность переключаться с одной цели на другую со знаком "молоток"?
Большое спасибо.