Название: QtCreator + CMake Отправлено: brunt от Июль 06, 2010, 09:16 есть задача перевести довольно большой проект на систему сборки CMake, только проблема в том что при открытии CMakeLists.txt открываются все файлы проекта не сортированные и moc-файлы. Прилагаю скриншот, если кто знает как все это организовать в приличном виде отпишитесь плиз
Название: Re: QtCreator + CMake Отправлено: DOOMer от Июль 06, 2010, 09:41 Файлы в CMake-based-проекте креатор не сортирует по типа (заголовочные, исходники, формы, etc), если вы именно эту сортировку имеете в виду.
По поводу отображения moc_* -- убейте файл настроек прокета CMakeLists.txt.user и переоткройте cmakeLists.txt, и в на первом шаге (Build location) укажите ему каталог сборки не в оснвоной папке проекта (где у вас cmakeLists.txt лежит) а например в $project_name/qtcreator-build -- сгенеренные moc'ом файлы не должны после этого "мозолить глаза". Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 01, 2010, 16:59 Вопрос на ту же тему. Есть CMAKE-проект, состоящий из общего каталога (без кода) и его подкаталогов (с кодом). Когда я открываю этот проект в QtCreator, из файлов CMakeLists.txt виден только файл корневого проекта, а файлы CMakeLists.txt подпроектов не показываются. Это так и должно быть?
Название: Re: QtCreator + CMake Отправлено: DOOMer от Ноябрь 01, 2010, 17:09 Какая у вас версия qtCreator и ОС? Сейчасглянул у себя в Linux -- Креатор 2.0.92 (2.1-бета) отображает и корнневой CmakeLists.txt и все "подчинённые".
Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 01, 2010, 18:26 QtCreator 2.0.1, Windows 7. Возможно, я что-то неправильно указал в CMakeLists.txt, только начинаю разбираться с CMake-ом. У меня пока структура того, что получается, далека от идеала. Почему-то в дереве в проект оказалась включена папка Program Files\<путь к модулям CMake> с несколькими модулями оттуда, которые я, притом, не использую.
Код: cmake_minimum_required(VERSION 2.8) Название: Re: QtCreator + CMake Отправлено: DOOMer от Ноябрь 01, 2010, 18:45 Каталог common лежит уровнем выше, чем CMakerLists.txt? Если так, то возможно причина в этом. Опишите плз, струткруру каталогов этого проекта.
Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 01, 2010, 18:47 Собираете чем? У меня cmake+креатор+msvc не работали также (пустой проект). С мингвой всё было ок.
Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 01, 2010, 18:53 2 DOOMer да, выше. там в каждом каталоге (включая и корневой) есть папка build, и уже в ней находятся CMakeLists.txt и то, что ещё им надо (типа автоматически сгенерированных списков исходников).
2 Авварон msvс. Название: Re: QtCreator + CMake Отправлено: DOOMer от Ноябрь 01, 2010, 19:00 2Varan
Возможно я ошибаюсь, но cmake вроде не любит когда файлы "подпроектов" расположены вне каталога с главным CMakeLists.txt (пробовал как-то организовать подобное -- ничего путного не ывшло). Кстати, если для сборки используется msvc, зачем вам креатор? Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 01, 2010, 19:17 Ну походу креатор не понимает такой связки:(
DOOMer А что, студия позволяет открывать симейк проекты?) Название: Re: QtCreator + CMake Отправлено: DOOMer от Ноябрь 01, 2010, 19:22 Нет, но CMake умеет на основе своих проектов (CMakeLists.txt) генерить проекты для студии)
Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 01, 2010, 20:36 Это я знаю, но профит в чем? Проект также фиксим ручками, половина фичей не работает. Не проще консольный msvc компилер+студия для просмотра текстов?
Название: Re: QtCreator + CMake Отправлено: DOOMer от Ноябрь 01, 2010, 20:52 Наверное проще для кого-то работать именно со студийным проектом/солюшеном, чем руками править CMakeLists, я не знаю, т.к. сам не использую студийный компилер (и соответсвенно студию). .Но если в KitWar решили это сделать, то наверное кому-то было нужно).
Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 01, 2010, 21:33 так правка сгенеренного проекта для студии вроде никак на симейлистс не отображается, не?
Название: Re: QtCreator + CMake Отправлено: DOOMer от Ноябрь 01, 2010, 23:39 Скорее всего нет . Но креатор в этом отношении не особо отличается, новые файлы все равно руками в CMakeList прописывать надо.
Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 01, 2010, 23:50 Но там-то хоть работаешь с текущим проектом и редактируешь в нем же.
Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 02, 2010, 10:22 2Varan У меня был проект VS2010, мне нужно портировать его на Qt. Поэтому файлы CMake появились уже на основе существующей конфигурации VS. А msvc используется потому, что в проекте пока куча всяких зависимостей от MS-штук.Возможно я ошибаюсь, но cmake вроде не любит когда файлы "подпроектов" расположены вне каталога с главным CMakeLists.txt (пробовал как-то организовать подобное -- ничего путного не ывшло). Кстати, если для сборки используется msvc, зачем вам креатор? Насчёт подпроектов - а как же мне поместить в одном каталоге несколько файлов CMakeLists.txt? Возможно, что тут дело в том, что есть каталог build, который сам по себе в проект не включен, зато в нём лежит CMakeLists.txt. Попробую перенести файл в корень проекта. так правка сгенеренного проекта для студии вроде никак на симейлистс не отображается, не? Есть такая хорошая штука - folders4cmake. По ней мною не найдено никакой документации на русском, постараюсь в будущем это исправить - но она вроде такое позволяет. Вроде - потому что мне пока именно это было не нужно и я не пробовал. Зато она классно сгенерила на основе .vcxproj.filters списки файлов подпроекта CMake. Ну т.е. выглядит оно классно в окошке QtCreator. Стадия "компилируется" пока не достигнута.Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 02, 2010, 10:57 Возможно, что тут дело в том, что есть каталог build, который сам по себе в проект не включен, зато в нём лежит CMakeLists.txt. Попробую перенести файл в корень проекта. А дело было именно в этом. Заработало. Спасибо. Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 02, 2010, 11:06 Не понял - build - это куда вы собираете? А зачем там свой CMakeLists.txt?
Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 02, 2010, 11:18 2 Авварон Куда я собираю - это qtcreator-build. А build был в каждом подпроекте для удобства организации проектов, там лежали исходные сборочные файлы подпроекта - CMakeLists.txt и зависимый от него sources_list.cmake. Но, видимо, qtcreator этого не понял.
Название: Re: QtCreator + CMake Отправлено: Авварон от Ноябрь 02, 2010, 11:44 Итог - креатор не понимает древовидных проектов с компилером msvc?
Название: Re: QtCreator + CMake Отправлено: Varan от Ноябрь 02, 2010, 12:31 msvc тут ни при чём. msvc - это только компилятор. А мы говорим об отображении файлов в дереве проекта в IDE. Я запускал сначала CMake с генератором MinGW, было то же самое. Дело тут в том, что файлы CMakeLists.txt подпроектов лежали в таких местах, откуда IDE их не смогла отобразить. То есть подкаталог build не был частью подпроекта, а файл CMakeLists.txt этого подпроекта лежал именно в этом подкаталоге. Когда я перенёс CMakeLists.txt подпроекта из build на уровень выше - всё стало хорошо. Кстати, модуль sources_list.cmake, который содержал список файлов подпроекта, тоже стал виден в дереве QtCreator.
И ещё - я так понял, та самая директория в Program Files, о которой я писал выше, по-видимому включена из-за модулей CMake, которые оттуда берутся и используются CMake-ом. |