Russian Qt Forum
Ноябрь 22, 2024, 19:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QtCreator + CMake  (Прочитано 16573 раз)
brunt
Гость
« : Июль 06, 2010, 09:16 »

есть задача перевести довольно большой проект на систему сборки CMake, только проблема в том что при открытии CMakeLists.txt открываются все файлы проекта не сортированные и moc-файлы. Прилагаю скриншот, если кто знает как все это организовать в приличном виде отпишитесь плиз
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #1 : Июль 06, 2010, 09:41 »

Файлы в  CMake-based-проекте креатор не сортирует по типа (заголовочные, исходники, формы, etc), если вы именно эту сортировку имеете в виду.

По поводу отображения moc_* -- убейте файл настроек прокета CMakeLists.txt.user и переоткройте  cmakeLists.txt, и в на первом шаге (Build location) укажите ему каталог сборки не в оснвоной папке проекта (где у вас  cmakeLists.txt лежит) а например в $project_name/qtcreator-build -- сгенеренные  moc'ом файлы не должны после этого "мозолить  глаза".
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Varan
Гость
« Ответ #2 : Ноябрь 01, 2010, 16:59 »

Вопрос на ту же тему. Есть CMAKE-проект, состоящий из общего каталога (без кода) и его подкаталогов (с кодом). Когда я открываю этот проект в QtCreator, из файлов CMakeLists.txt виден только файл корневого проекта, а файлы CMakeLists.txt подпроектов не показываются. Это так и должно быть?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #3 : Ноябрь 01, 2010, 17:09 »

Какая у вас версия qtCreator и ОС? Сейчасглянул у себя в Linux --  Креатор 2.0.92 (2.1-бета) отображает и корнневой  CmakeLists.txt и все "подчинённые".
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Varan
Гость
« Ответ #4 : Ноябрь 01, 2010, 18:26 »

QtCreator 2.0.1, Windows 7. Возможно, я что-то неправильно указал в CMakeLists.txt, только начинаю разбираться с CMake-ом. У меня пока структура того, что получается, далека от идеала. Почему-то в дереве в проект оказалась включена папка Program Files\<путь к модулям CMake> с несколькими модулями оттуда, которые я, притом, не использую.
Код:
cmake_minimum_required(VERSION 2.8)
add_definitions(-DUNICODE -D_UNICODE)

set(PROJECT solution)

project(${PROJECT})

set(COMMON_LIBRARY common)

set(DEVICES
device1
device2)

set(PROGRAM app)

# add devices
foreach(DEVICE ${DEVICES})
        add_subdirectory (../${DEVICE}/build ../bin/${DEVICE})
endforeach()

# add common
add_subdirectory(../${COMMON_LIBRARY}/build ../bin/${COMMON_LIBRARY})

# add program
add_subdirectory(../${PROGRAM}/build ../bin/${PROGRAM})
Как-то так выглядит корневой CMakeLists.txt
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #5 : Ноябрь 01, 2010, 18:45 »

Каталог common лежит уровнем выше, чем  CMakerLists.txt? Если так, то возможно причина в этом. Опишите плз, струткруру каталогов этого проекта.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #6 : Ноябрь 01, 2010, 18:47 »

Собираете чем? У меня cmake+креатор+msvc не работали также (пустой проект). С мингвой всё было ок.
Записан
Varan
Гость
« Ответ #7 : Ноябрь 01, 2010, 18:53 »

2 DOOMer да, выше. там в каждом каталоге (включая и корневой) есть папка build, и уже в ней находятся CMakeLists.txt и то, что ещё им надо (типа автоматически сгенерированных списков исходников).

2 Авварон msvс.
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #8 : Ноябрь 01, 2010, 19:00 »

2Varan
Возможно я ошибаюсь, но  cmake  вроде не любит когда файлы "подпроектов" расположены  вне каталога с главным  CMakeLists.txt (пробовал как-то организовать подобное -- ничего путного не ывшло). Кстати, если для сборки используется msvc, зачем вам креатор?
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #9 : Ноябрь 01, 2010, 19:17 »

Ну походу креатор не понимает такой связки:(

DOOMer
А что, студия позволяет открывать симейк проекты?)
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #10 : Ноябрь 01, 2010, 19:22 »

Нет, но CMake умеет на основе своих проектов (CMakeLists.txt) генерить проекты для студии)
« Последнее редактирование: Ноябрь 01, 2010, 19:26 от DOOMer » Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #11 : Ноябрь 01, 2010, 20:36 »

Это я знаю, но профит в чем? Проект также фиксим ручками, половина фичей не работает. Не проще консольный msvc компилер+студия для просмотра текстов?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #12 : Ноябрь 01, 2010, 20:52 »

Наверное проще для кого-то работать именно со студийным проектом/солюшеном, чем руками править CMakeLists, я не знаю, т.к. сам  не использую студийный компилер (и соответсвенно студию). .Но если в  KitWar решили это сделать, то наверное кому-то было нужно).

Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #13 : Ноябрь 01, 2010, 21:33 »

так правка сгенеренного проекта для студии вроде никак на симейлистс не отображается, не?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #14 : Ноябрь 01, 2010, 23:39 »

Скорее всего нет .  Но креатор в этом отношении не особо отличается, новые файлы все равно руками в  CMakeList прописывать надо.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.