CMake: вопросы
От: Graf Alex Украина http://grafalex.oberon.kiev.ua
Дата: 07.11.08 12:03
Оценка:
Думаю тут перепозлать на cmake...

Предварительно хотелось бы узнать следующее:
1) поддерживает ли он precompiled header'ы или нужно в нем делать дополнительные кастомные правила?
2) Генерит ли он мейки, которые корректно собираются на многопроцессорных системах? (типа make -j 4)
3) Возможна ли (пере)сборка только части проекта? (типа cd Module/Submodule && make)
4) Возможно ли размещение исходников для некоего таргета в нескольких разніх директориях? (типа submodule1/submodule1.cpp, submodule/submodule2.cpp — все это слить в один таргет)
5) Возможно ли явное управление видом таргета? (вот это у меня всегда статическая либа, а вот это всегда ДЛЛ)
6) Есть ли поддержка def файлов для винды?
7) Насколько будет просто перейти на cmake народу, который в глаза консоль не видел, а сидел в вижуал студии?
8) Насколько это удобно для девелопмента? поддерживается ли автоматическое построение зависимостей? отслеживаются ли эти изменения при изменении исходников?

ЗЫ Ссылки на automake неуместны, т.к. я с ним детально не знаком. C autoconf знаком.
Re: CMake: вопросы
От: Vinick Россия  
Дата: 07.11.08 15:03
Оценка:
Здравствуйте, Graf Alex, Вы писали:

GA>Думаю тут перепозлать на cmake...

Откуда если не секрет?

GA>3) Возможна ли (пере)сборка только части проекта? (типа cd Module/Submodule && make)

можно. будут собраны цели описаные в CMakeLists текущего каталога и их зависимости.

GA>4) Возможно ли размещение исходников для некоего таргета в нескольких разніх директориях? (типа submodule1/submodule1.cpp, submodule/submodule2.cpp — все это слить в один таргет)


можно

GA>5) Возможно ли явное управление видом таргета? (вот это у меня всегда статическая либа, а вот это всегда ДЛЛ)

При добавлени цели библиотека можно явно указать тип STATIC или SHARED.
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL]
source1 source2 ... sourceN)


GA>7) Насколько будет просто перейти на cmake народу, который в глаза консоль не видел, а сидел в вижуал студии?

у cmake есть кой-какой GUI, кроме того он может генерировать проекты для VS, правда у меня это не очень получилось. Так что для таких людей можно будет сделать использование Cmake незаметным

GA>8) Насколько это удобно для девелопмента? поддерживается ли автоматическое построение зависимостей? отслеживаются ли эти изменения при изменении исходников?

По сравнению с чистым make — удобно. С другими системами сборки не могу сравнивать. Изменения отслеживаются и зависимости в CMake строятся. по крайней мере если генерируется Makefile.
Re: CMake: вопросы
От: Cyberax Марс  
Дата: 07.11.08 15:13
Оценка: 1 (1) -1
Здравствуйте, Graf Alex, Вы писали:

GA>Предварительно хотелось бы узнать следующее:

GA>1) поддерживает ли он precompiled header'ы или нужно в нем делать дополнительные кастомные правила?
Стандартно нет. Самому легко добавить.

GA>2) Генерит ли он мейки, которые корректно собираются на многопроцессорных системах? (типа make -j 4)

Да.

GA>3) Возможна ли (пере)сборка только части проекта? (типа cd Module/Submodule && make)

Да.

GA>4) Возможно ли размещение исходников для некоего таргета в нескольких разніх директориях? (типа submodule1/submodule1.cpp, submodule/submodule2.cpp — все это слить в один таргет)

Да.

GA>5) Возможно ли явное управление видом таргета? (в

от это у меня всегда статическая либа, а вот это всегда ДЛЛ)
Да.

GA>6) Есть ли поддержка def файлов для винды?

Да.

GA>7) Насколько будет просто перейти на cmake народу, который в глаза консоль не видел, а сидел в вижуал студии?

Очень просто — он умеет генерировать VisualStudio-проекты.

GA>8) Насколько это удобно для девелопмента? поддерживается ли автоматическое построение зависимостей? отслеживаются ли эти изменения при изменении исходников?

Да, всё отслеживается. Использовать удобно, так как скорость работы make почти что самая быстрая из всех.

Единственный минус — нет аналога use-flags из boost.buildv2

GA>ЗЫ Ссылки на automake неуместны, т.к. я с ним детально не знаком. C autoconf знаком.

Automake/autoconf — в морг, минуя реанимацию.
Sapienti sat!
Re[2]: CMake: вопросы
От: Graf Alex Украина http://grafalex.oberon.kiev.ua
Дата: 07.11.08 15:32
Оценка:
Здравствуйте, Vinick, Вы писали:

V>Здравствуйте, Graf Alex, Вы писали:


GA>>Думаю тут перепозлать на cmake...

V>Откуда если не секрет?
Под виндой: VS2005 (солюшены + проекты)
Под линуксом: autoconf + собственный велосипед на мейкфайлах с поддержкой прекомпилед хедеров, умной пересборки, отслеживания депенденсей, многопроцессорности и еще кучи всяких штучек (допиливал в течении полутора лет, получилось очень читабельно, надежно и удобно...). Не без минусов разумеется (например не поддерживается out-of-source билды... но они мне и не нужны были)

GA>>3) Возможна ли (пере)сборка только части проекта? (типа cd Module/Submodule && make)

V>можно. будут собраны цели описаные в CMakeLists текущего каталога и их зависимости.
Имелось в виду следующее:
я раз собираю весь проект. Потом скажем меняю чтото в одном модуле и запускаю make не на весь проект, а только в одном каталоге... При этом зависимые проекты могут лежать и выше этого каталога...
Хотя наверное это отслеживает cmake в момент генерации мейкфайлов

GA>>7) Насколько будет просто перейти на cmake народу, который в глаза консоль не видел, а сидел в вижуал студии?

V>у cmake есть кой-какой GUI, кроме того он может генерировать проекты для VS, правда у меня это не очень получилось. Так что для таких людей можно будет сделать использование Cmake незаметным
Угу... только все по привычке будут добавлять файлы в виндовые проекта, а не в cmake-исходники...

Хотя, я как единственный никсовый девелопер в проекте уже смирился, с тем, что мне приходится вести свои мейки самостоятельно (если ктото добавил файло в виндовый солюшен — молча добавить его к себе в мейк. Если добавил файл под никсом — добавить его и в солюшен, ибо ругаться будут)
Re[3]: CMake: вопросы
От: Cyberax Марс  
Дата: 07.11.08 15:39
Оценка:
Здравствуйте, Graf Alex, Вы писали:

GA>Имелось в виду следующее:

GA>я раз собираю весь проект. Потом скажем меняю чтото в одном модуле и запускаю make не на весь проект, а только в одном каталоге... При этом зависимые проекты могут лежать и выше этого каталога...
GA>Хотя наверное это отслеживает cmake в момент генерации мейкфайлов
Там ещё круче — сам cmake добавляет в сгенерированные проекты target'ы для отслеживания изменения самих .cmake-файлов. Т.е. правишь cmake-файл, запускаешь make (если в Линуксе) или жмёшь Build->Make (если в VS) и он перегенерирует изменившиеся части проекта.

Зависимости выше по проекту CMake тоже нормально при частичных build-ах обрабатывает — он их пропускает.
Sapienti sat!
Re[3]: CMake: вопросы
От: Vzhyk  
Дата: 07.11.08 17:43
Оценка:
Graf Alex пишет:
>
> GA>>7) Насколько будет просто перейти на cmake народу, который в глаза
> консоль не видел, а сидел в вижуал студии?
> V>у cmake есть кой-какой GUI, кроме того он может генерировать проекты
> для VS, правда у меня это не очень получилось. Так что для таких людей
> можно будет сделать использование Cmake незаметным
> Угу... только все по привычке будут добавлять файлы в виндовые проекта,
> а не в cmake-исходники...

Вот это и есть самая большая проблема.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: CMake: вопросы
От: Cyberax Марс  
Дата: 07.11.08 17:56
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> Угу... только все по привычке будут добавлять файлы в виндовые проекта,

>> а не в cmake-исходники...
V>Вот это и есть самая большая проблема.
CMake перегенерирует студийные проекты при изменении cmake-файлов, так что это быстро отучит так делать.
Sapienti sat!
Re[5]: CMake: вопросы
От: Vzhyk  
Дата: 07.11.08 19:49
Оценка:
Cyberax пишет:
>
> V>Вот это и есть самая большая проблема.
> CMake перегенерирует студийные проекты при изменении cmake-файлов, так
> что это быстро отучит так делать.

Да это я о своем, о наболевшем. CМake то сделает, но вот люди...
Posted via RSDN NNTP Server 2.1 beta
Re[6]: CMake: вопросы
От: Cyberax Марс  
Дата: 07.11.08 19:56
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> CMake перегенерирует студийные проекты при изменении cmake-файлов, так

>> что это быстро отучит так делать.
V>Да это я о своем, о наболевшем. CМake то сделает, но вот люди...
После того, как CMake пару раз затрёт их самодеятельность — научатся.
Sapienti sat!
Re[6]: CMake: вопросы
От: alsemm Россия  
Дата: 07.11.08 20:17
Оценка: 3 (2)
Здравствуйте, Vzhyk, Вы писали:

V>Cyberax пишет:

>>
>> V>Вот это и есть самая большая проблема.
>> CMake перегенерирует студийные проекты при изменении cmake-файлов, так
>> что это быстро отучит так делать.

V>Да это я о своем, о наболевшем. CМake то сделает, но вот люди...

Положите CMake-овские скрипты в SVN. Туда же сложите батник, который будет дергать cmake, чтобы он проекты для VC генерил. Сгенерированные проектные файлы, естественно, в SVN складывать не надо. И пусть люди делают чего хотят.

Алексей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.