История изменений
Исправление waker, (текущая версия) :
что используете вы? насколько это распространено?
для начала, нужно понять что такое «компонент». отдельная папка? модуль? статическая/динамическая библиотека? что насчет ресурсов (иконки/картинки/звуки/тексты/переводы/...)?
распространение проекта как делается, в бинарях или в исходниках?
от этого зависит ответ.
по совокупности фич, для опенсорса под *nix лучше autotools ничего нет (а если устраивает cygwin/mingw — то и под вендой работает). можно как общий makefile на все модули, так и по 1 makefile в каждом модуле.
если распространение в виде исходников (configure;make;make install) не нужно — то можно рассмотреть другие альтернативы. например, jam+ неплох. синтаксис уродливый, но умеет генерировать проекты для xcode и msvs, что очень удобно. но он только компилирует — делать тарболлы и установку и подобное придется другими средствами. поэтому для опенсорса не очень удобно.
как альтернатива jam, сейчас входит в моду gradle. люди, которые выбирали систему сборки на замену jam+ в нашей конторе, пришли к выводу, что gradle лучше всех для наших задач. но он на жабе, поэтому большинство (в т.ч. я) его избегают. если от жабы не воротит - стоит обратить внимание. в процессе выбора, они смотрели также на всякие scons, waf и много другой дряни.. оно не стоит внимания вообще.
многие хвалят cmake, на лоре есть много срачей по этому поводу. синтаксис один из самых уродских, что я только встречал. гибкость ниже среднего. в основном надо полагаться на готовые модули, которые есть не для всего. например, если нет готового модуля cmake для подключения нужной тебе внешней библиотеки — придется свой модуль запиливать (намного сложнее чем в autotools, например). make uninstall по дефолту нету, но можно нагуглить как его прикрутить. по ходу срачей, кто-то вроде упоминал, что он позволяет захренячить все в один CMakeLists (то что ты спрашивал). еще один недостаток cmake — это отсутствие стадии configure. т.е. проверять наличие и корректность зависимостей он не умеет. для меня это большой минус.
Исходная версия waker, :
что используете вы? насколько это распространено?
для начала, нужно понять что такое «компонент». отдельная папка? модуль? статическая/динамическая библиотека? что насчет ресурсов (иконки/картинки/звуки/тексты/переводы/...)?
распространение проекта как делается, в бинарях или в исходниках?
от этого зависит ответ.
по совокупности фич, для опенсорса под *nix лучше autotools ничего нет (а если устраивает cygwin/mingw — то и под вендой работает). можно как общий makefile на все модули, так и по 1 makefile в каждом модуле.
если распространение в виде исходников (configure;make;make install) не нужно — то можно рассмотреть другие альтернативы. например, jam+ неплох. синтаксис уродливый, но умеет генерировать проекты для xcode и msvs, что очень удобно. но он только компилирует — делать тарболлы и установку и подобное придется другими средствами. поэтому для опенсорса не очень удобно.
как альтернатива jam, сейчас входит в моду gradle. люди, которые выбирали систему сборки на замену jam+ в нашей конторе, пришли к выводу, что gradle лучше всех для наших задач. но он на жабе, поэтому большинство (в т.ч. я) его избегают. если от жабы не воротит - стоит обратить внимание. в процессе выбора, они смотрели также на всякие scons, waf и много другой дряни.. оно не стоит внимания вообще.
многие хвалят cmake, на лоре есть много срачей по этому поводу. синтаксис один из самых уродских, что я только встречал. гибкость ниже среднего. в основном надо полагаться на готовые модули, которые есть не для всего. например, если нет готового модуля cmake для подключения нужной тебе внешней библиотеки — придется свой модуль запиливать (намного сложнее чем в autotools, например). make uninstall по дефолту нету, но можно нагуглить как его прикрутить. по ходу срачей, кто-то вроде упоминал, что он позволяет захренячить все в один CMakeLists (то что ты спрашивал).