На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
  
> Сборщик проектов
    В boost есть bjam, но посмотрел вроде последняя версия 2010 год, оптимально будет cmake, что используете?
      cmake - кроссплатформенная шляпа, это ее выгодно отличает от других инструментов.
        bjam тоже можно использовать под винду и линукс.
          Cmake. Без вариантов.
            Флекс! На напиши пару слов почему. Я так понимаю, что тот же bjam уже можно сказать не используется.
              Цитата ter_nk_ @
              Флекс! На напиши пару слов почему.

              Потому что:
              - Поддерживает кучу платформ, компиляторов и систем сборок.
              - Поддерживает кучу библиотек и фреймворков (в плане их поиска)
              - Достаточно прост в освоении. Порог входа относительно невысокий.
              - Позволяет делать довольно замороченные сборочные скрипты и гибкую конфигурацию сборки.
              - Почти все проекты, в которых я участвовал и фреймворки, которые использую, поддерживают сборку на базе CMake.
                Спасибо! Потом возможно появятся уже конкретные вопросы.
                  Если есть куча файлов в разных директориях, где-то хедеры, где-то срр, есть какие-нибудь автоконфигурационные тулзы, чтоб хотя бы посоздавали CMakeLists.txt ?
                    В CMake есть замечательная команда file, которая найдёт все файлы по заданной маске в директории и поддиректориях...
                      Не очень понятно. Привык больше к IDE

                      У меня структура проекта. Соответственно везде перекрестные ссылки с одной на другую.

                      Проект
                      -библиотека1
                      --/include/*.h
                      --cpp
                      -библиотека2
                      --/include/*.h
                      --cpp
                      -библиотека3
                      --/include/*.h
                      --cpp
                        Ну, да. Когда нет IDE - приходится руками. :) Не знаю, как "обычно", но у нас с cmake'ками работают так:

                        0. Каждый cmake начинается с project()
                        1. Пишется корневой CMakeList.txt. В нём:
                        - Задаются разнообразные опции сборки (через установку переменных С_FLAGS, CXX_FLAGS, CXX_FLAGS_(DEBUG|RELEASE) )
                        - Подключаются внешние библиотеки (через find_package() )
                        - Задаются глобальные пути к include'ам и lib'ам (include_directories, link_directories)
                        - Подключаются cmake'и отдельных подпроектов (через add_subdirectory)

                        2. В каждой поддиректории создаётся свой CMakeList.txt, который определяет - как собирается конкретная библиотека или исполняемый файл:
                        - Задаётся список исходных/заголовочных файлов (можно с помощью команды file(GLOB, ...))
                        - Задаются дополнительные include'е-пути, если надо (с помощью того же include_directories)
                        - Задаётся цель сборки с помощью add_executable или add_library.
                        - Задаются дополнительные зависимости (если нужно) - с помощью target_link_libraries()

                        После этого запускается CMake (на корневом файле), и make/nmake. Всё должно собраться и работать. Это, так сказать, азы. Кроме того, можно посмотреть здесь, как это выглядит в коде.
                          Спасибо за развернутый ответ!
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0694 ]   [ 17 queries used ]   [ Generated: 25.04.24, 04:21 GMT ]