2012-06-13 2 views
0

Я пытаюсь создать группу проектов Qt Creator с несколькими пользовательскими библиотеками, совместно используемыми между ними. Все они используют C++ 11 и Boost и управляются в репозиториях Git.Распределение «под ключ» проектов и библиотек Qt Creator?

В настоящее время я использую CMake и символические ссылки. Таким образом, существующая структура каталогов выглядит примерно так:

projects/ 
    libraryOne/ 
     include/ 
      libraryOne/ ; Parent in -I paths, then #include "libraryOne/foo.h" 
     src/ 
    libraryTwo/ 
     include/ 
      libraryTwo/ 
     src/ 
     libraryOne/ ; symbolic link 
    libraryThree/ 
     include/ 
      libraryThree/ 
     src/ 
     libraryTwo/ ; symbolic link 
    applicationOne/ 
     CMakeLists.txt 
     libraryOne/ ; symbolic link 
     libraryTwo/ ; symbolic link 
     libraryThree/ ; symbolic link 
     build/ 
    applicationTwo/ 
     CMakeLists.txt 
     libraryOne/ ; symbolic link 
     libraryTwo/ ; symbolic link 
     libraryThree/ ; symbolic link 
     build/ 
    applicationThree/ 
     CMakeLists.txt 
     libraryOne/ ; symbolic link 
     libraryTwo/ ; symbolic link 
     libraryThree/ ; symbolic link 
     build/ 

Для создания данного приложения, я иду в build/ подкаталог этого приложения и запустить cmake .. поэтому он будет генерировать мейкфайлы из CMakeLists.txt (так что приложат все посредник и строить продукты под build/). Затем я запускаю make.

Вот как эта конкретная установка развивалась, и она довольно неуклюжая. Я хочу удалить зависимость CMake и сделать его тривиальным для тех, у кого есть Qt Creator, до git clone моих отдельных исходных репозиториев, одного или нескольких приложений, загрузки файла .pro и затем нажмите «Сборка» и запустите его.

Другие пожелания:

  • Нет необходимости создавать символические ссылки
  • Добавление и удаление файлов должны быть выполнимыми в графическом интерфейсе без необходимости отредактировать Makefile
  • Загрузка приложения в редактор должен сделать библиотеки, доступные для редактирования, а также для зависимостей построения следует автоматически заботиться
  • В режиме отладки вы можете установить точку останова в любой из библиотек, и среда может остановиться на ней
  • Поместите объектные и исполняемые файлы в директории, не подкаталог исходного кода

Я интересно, если есть «чистый» пример того, как это ... есть ли хорошие примеры, чтобы следовать во вселенной Qt Creator? Слишком амбициозно ожидать, что .pro файлы автоматически обрабатывают такую ​​кросс-платформу?

ответ

1

Файлы .pro фактически обрабатывают его для вас. Я ответил, как это сделать in another question.

+0

+1 для связи. Ваш пример не совсем то, что я ищу, потому что вы помещаете библиотеки в проект приложения, и у меня есть библиотеки, разделяемые в нескольких приложениях. : -/По умолчанию настройки Qt Creator не будут работать для меня, особенно для сборки библиотек бок о бок в ужасно названных каталогах, таких как '[libname] -build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Release /'! – HostileFork

+0

Вы не пробовали, не так ли? В этом ответе есть три проекта: главный проект, проект библиотеки и проект приложения. Последние два являются отдельными. Главный проект для удобства: его построение построит библиотеку (и) и, наконец, приложение. Это именно то, что вы ищете. –

+0

Чтобы уточнить: я имел в виду, что у меня было бы несколько «лучших» проектов приложений, использующих одни и те же библиотеки, поэтому я не могу сделать поддиректории библиотек «верхнего» приложения. Я обновил свой вопрос, чтобы получить более четкие сведения о ситуации, в которой я пытаюсь изящество. Если вы считаете, что можете адаптировать свой ответ к этому сценарию, это было бы очень полезно! – HostileFork

Смежные вопросы