Представлен (http://www.cmake.org/pipermail/cmake/2014-June/057793.html) релиз написанного на языке C++ кроссплатформенного открытого генератора сценариев сборки CMake 3.0.0 (http://www.cmake.org/), выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB и Blender. Код CMake распространяется под лицензией BSD.
Из достоинств CMake можно отметить простой язык сценариев, средства расширения функциональности через модули, минимальное число зависимостей (нет привязки к M4, Perl или Python), поддержка кэширования, наличие средств для кросс-компиляции, поддержка генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличие утилит ctest и
cpack для определения сценариев тестирования и сборки пакетов, утилита cmake-gui для интерактивной настройки параметров сборки.
Основные изменения (http://www.cmake.org/cmake/help/v3.0/release/3.0.0.html#new-...):
- Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков;- Язык сценариев расширен поддержкой новых элементов синтаксиса, заимствованных из Lua: #[[комментарий]] (http://www.cmake.org/cmake/help/v3.0/manual/cmake-language.7...) и [=[аргумент]=] (http://www.cmake.org/cmake/help/v3.0/manual/cmake-language.7...), для которых содержимое внутри скобок воспринимается как есть, без замены переменных и обработки символов экранирования. Например, можно указать message("начало строки\n" #[[комментарий]] "продолжение строки") или message([=[переменная ${variable}]=]);
- Переименованы генераторы файлов сборки для Visual Studio 10 (2010) и более новых выпусков: вместо "Visual Studio 10" следует использовать "Visual Studio 10 2010", "Visual Studio 11" - "Visual Studio 11 2012", "Visual Studio 12" - "Visual Studio 12 2013". Поддержка старых имён генераторов оставлена для обеспечения совместимости;
- Новый расширенный генератор "CodeLite (http://www.cmake.org/cmake/help/v3.0/generator/CodeLite.html...)", предназначенный для генерации файлов проектов CodeLite и пригодный для использования с генераторами Makefile или Ninja;
- Новый расширенный генератор "Kate (http://www.cmake.org/cmake/help/v3.0/generator/Kate.html#gen...)", предназначенный для генерации файлов проектов Kate и пригодный для использования с генераторами Makefile или Ninja;
- В команду "add_library()" добавлена поддержка нового типа библиотек "INTERFACE", которые не содержат правил сборки, но могут определять требования по использованию, что, например, применимо для создания заголовочных библиотек, уточняющих ссылочные зависимости с другими библиотеками;
- В команду "export()" добавлен новый режим "EXPORT", который получает список целей для экспорта из экспортного набора, настроенного через опцию "EXPORT" команды "install(TARGETS)". Добавленная возможность позволяет упростить экспорт из сборочного дерева тех же самых целей, которые экспортированы из установочного дерева;
- В команду "project()" добавлена обработка переменных с номером версии, выставляемых на основании новой опции "VERSION";- Запрещено использование давно устаревших команд в новом коде: "subdir_depends()", "use_mangled_mesa()", "load_command()", "output_required_files()", "export_library_dependencies()", "utility_source()", "variable_requires()", "build_name()";
- Изменён подход к нумерации версий CMake, вместо первых трёх цифр для обозначения уровня функциональных изменений теперь будут использоваться первые две цифры, третья цифра будет увеличиваться для корректирующих выпусков.
URL: http://www.cmake.org/pipermail/cmake/2014-June/057793.html
Новость: http://www.opennet.me/opennews/art.shtml?num=39983
> Переименованы генераторы файлов сборки для Visual Studio 10 (2010) и более новых выпусков: вместо "Visual Studio 10" следует использовать "Visual Studio 10 2010", "Visual Studio 11" - "Visual Studio 11 2012", "Visual Studio 12" - "Visual Studio 12 2013". Поддержка старых имён генераторов оставлена для обеспечения совместимости;За такие названия генераторов хочется сделать разработчикам CMake больно — длинные, с пробелами и буквами в обоих регистрах; набирать подобное в консоли та ещё "радость".
Да уж, то ли дело QBS!
> Да уж, то ли дело QBS!Вот не надо на QBS наезжать. По сравнению с qmake это большой прорыв, хотя, конечно, при наличии cmake не понятно нафига оно нужно.
Перечитал, понял что прозвучало как сарказм. На самом деле как раз наоборот)
Я уже почти полсотни проектов на него перевел, причем еще собираю все 3rdparty-либы им, кроме буста)
>>почти полсотни проектов на него перевелА можно где-то глянуть на это, для расширения кругозора ?
Увы, сами проекты нет, но если желаете, то можете найти меня по нику mapron, я могу поделиться примерами скриптов, модулей, интеграции со студией, о подводных камнях и прочем.А так лучшая иллюстрация конечно - qbs скрипты в дереве Qt Creator.
Да, в этом вся суть опенсорса, сначала попереименовать всё "более правильными" именами а потом сделать
>Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусковДля пущей полезности и важности.
> Да, в этом вся суть опенсорса, сначала попереименовать всё "более правильными" именами
> а потом сделать
>>Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков
> Для пущей полезности и важности.всё верно только это делает не только опенсорс
Я бы даже сказал что проприетарщики делают чаще. Новый продукт _должны_ покупать.
> Я бы даже сказал что проприетарщики делают чаще. Новый продукт _должны_ покупать....поэтому MS выпустив всякое гомнецо типа win8 и wp8 потом дудит в пиар-рупоры, подминает всяких нокл, устраивает аферы с предустановкой и что там еще. Ведь покупать _должны_. А если не покупают - надо толкать продукт в глотку поршнем! Хоть это и полулегально, особенно в случае монополии, но бабло побеждает зло.
>Да, в этом вся суть опенсорса, сначала попереименовать всё "более правильными" именами а потом сделать
>>Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков
>Для пущей полезности и важности.последний релиз в ветке 2.3.x(2.3.4) был 17 марта 2006, действительно чего-то коммерческая компания(Kitware, Inc) решила дропнуть поддержку, пускай поддерживают до бесконесности.
в опенсорсе разные проекты есть. а вот несовместимость cmake между версиями - эт да, задалбывает при сборке.
> в опенсорсе разные проекты есть. а вот несовместимость cmake между версиями -
> эт да, задалбывает при сборке.Про декларацию минимальной требуемой версии, которая автоматически настраивает policy — не, не слышали?
Моя самая любимая программа.
>Моя самая любимая программа.смешно))
>>Моя самая любимая программа.
> смешно))"ай лайк ту шмяк ит, шмяк ит" -- это уже не смешно!
И в качестве браузера? :)
CMake — лучший сборщик на FreeBSD.
А ВЛ-80 лучший электровоз на Марсе.
ужс... мне жаль тебя
https://www.google.com/search?rls=en&q=cmake+suck&ie=utf-8&o...
> ужс... мне жаль тебяhttp://demotivators.to/media/posters/3381/804244_mne-vas-zha...
"...в каментах... интеллектуал..."
Да, мля... Именно интеллектуалы и делают такие демотиваторы. С грубыми грамматическими ошибками.
А вы специально 2 раза повторили, для iZEN и прочих "интеллектуалов" с IQ=50, до которых с 1 раза не доходит?
Ерохвост.
> CMake — лучший сборщик на FreeBSD.FreeBSD твоя тут совершенно не при чём.
CMake - просто лучшая на данный момент сборочная система.
> CMake — лучший сборщик на FreeBSD.Изя, как ты мог? Он же на плюсах! А как же жабские среды? :)
Но, блин, почему даже небольшие проекты использующие CMake очень долго компилируются?
Может потому что содержат много исходного кода?
> Может потому что содержат много исходного кода?потому что Си без пол-литра не разобрать, компиляторы медленные. Еще препроцессор, и с безопасностью туго, приходится инструменты всякие дополнительно разрабатывать (вплоть до монстров типа valgrind) и писать тучи манов "как безопасно кодить на С/C++".
Если АНБ и ввёл троянского коня - так это в самой основе мышления программистов: костыль под названием Сишечка.
> потому что Си без пол-литра не разобрать, компиляторы медленные. Еще препроцессор,Как раз си компилируется быстро. Вот плюсы уже другое дело.
> и с безопасностью туго, приходится инструменты всякие дополнительно разрабатывать
"Бешеному дитяти ножа в руки не давати".
> (вплоть до монстров типа valgrind)
Монстр типа valgrind разложит по полочкам и найдет даже небольшую утечку памяти с полоборота. А у других ЯПов сравнимого инструментария просто НЕТ. Поэтому если там вдруг случаются утечки - начинается полный кластерфак.
> и писать тучи манов "как безопасно кодить на С/C++".
"Дypaк и огурцом порежется". Примеры всяких moinmoin и т.п. прекрасно иллюстрируют этот тезис.
> костыль под названием Сишечка.
Как же ты пользуешься костыльными операционками? Срочно перепиши их все на яваскрипте и бидоне, мегапрограммист хренов.
>> потому что Си без пол-литра не разобрать, компиляторы медленные. Еще препроцессор,
> Как раз си компилируется быстро.вижу, компилирую бывает либы для си. в сравнении с пакалём - меееедленно.
> "Бешеному дитяти ножа в руки не давати".
ножом алгоритмы и безопасный код писати могут только бешеные дитяти.
>> (вплоть до монстров типа valgrind)
> Монстр типа valgrind разложит по полочкам и найдет даже небольшую утечку памяти
> с полоборота. А у других ЯПов сравнимого инструментария просто НЕТ. Поэтому
> если там вдруг случаются утечки - начинается полный кластерфак.да-да-да, контроль массивов в других языках искаропки, а IO-checker'ы, overflow-checker'ы и прочее - флаг компилятора. расскажи о других ЯП)))
>> и писать тучи манов "как безопасно кодить на С/C++".
> "Дypaк и огурцом порежется". Примеры всяких moinmoin и т.п. прекрасно иллюстрируют этот
> тезис.почти все сишники поголовно пишут небезопасный код обзывая друг друга дураками и прочей лестью.
>> костыль под названием Сишечка.
> Как же ты пользуешься костыльными операционками?как-то так.
> Срочно перепиши их все на яваскрипте и бидоне, мегапрограммист хренов.
зачем? достаточно новый код писать на легких, быстрых и понятных языках, созданными человеками для человеков, благо такие есть.
>достаточно новый код писать на легких, быстрых и понятных языках, созданными человеками для человеков, благо такие есть.Огласите весь список
>>достаточно новый код писать на легких, быстрых и понятных языках, созданными человеками для человеков, благо такие есть.
> Огласите весь списокoberon(2)
modula(2,3)
go.
>> Огласите весь список
> oberon(2)
> modula(2,3)
> go.ИЧСХ пока не видно операционок на всем этом. В смысле, не PoC вида "ежи тоже могут летать, главное пнуть посильнее" а нечто практически значимое.
>>> Огласите весь список
>> oberon(2)
>> modula(2,3)
>> go.
> ИЧСХ пока не видно операционок на всем этом.на одном есть.
> PoC вида "ежи тоже могут летать, главное пнуть посильнее"
это про Си и безопасность.
> а нечто практически значимое.
смотря для кого, но да, проектов уровня linux/bsd на безопасных языках практически нету.
> oberon(2)
> modula(2,3)
> go.Мог пропустить и, кажется, именно Вас уже спрашивал -- много ли кода на них написали? В своё время много писал на M2 и прям аж любопытство разобрало, что ж это за человечище такой.
я много кода читаю)) и читать эти языки (го - так себе) - интуитивно даже понятно. А сишный код говорит сам за себя.
> вижу, компилирую бывает либы для си. в сравнении с пакалём - меееедленно.Ну это естественно. Ведь в чём не меряй скорость компиляции -- хоть в строках/сек, хоть в мегабайтах/сек -- в выигрыше окажется паскаль, как содержащий больше синтаксического мусора, который не приводит к генерации кода.
> почти все сишники поголовно пишут небезопасный код обзывая друг друга дураками и прочей лестью.
Почти все паскалисты вообще не пишут кода. А тех, кто всё же что-то пишет, хочется взять и больно избить. Уже, хотя бы, за мозговыносящий pascal-mode в emacs. Нет мода хуже, чем pascal-mode, и Николаус пророк его.
>Почти все паскалисты вообще не пишут кодаОни пишут код в школе
> Они пишут код в школеДля школы паскаль хорош - зануден и приучает к порядку. Но почему-то взрослому человеку не очень нравятся поучения от бабушек которыми бабушки пичкают пятилетних внуков. Не знаете что за фигня?
Стереотипность мышления бабушек, сударь. Плюс, как правило, катастрофическое отсутствие кругозора.
В принципе, это свойственно не только бабушкам, но и всяким адептам, знающим чисто теоретически, или весьма поверхностно тематику.
> мозговыносящий pascal-mode в emacs. Нет мода хуже, чем pascal-mode,fpc поддерживается?
> вижу, компилирую бывает либы для си. в сравнении с пакалём - меееедленно.Странно. И чего это никто не пишет либы на паскале. И операционки не пишут.
> ножом алгоритмы и безопасный код писати могут только бешеные дитяти.
Дитяти типа вас пишут код огурцами, хоть это и неудобно. Зато "безопасно". Правда все-равно режутся, что забавно. Хотя если посмотреть на определение проблем безопасности от D.J.Berstein - все станет просто и понятно. И окажется что DJB может писать на "небезопасных" сях на порядок более безопасный код чем дитятя типа вас - на любом ином ЯП. Потому что дитятя наивно думает что умная среда от всего защитит, а самому стало быть можно и не думать совсем.
> да-да-да, контроль массивов в других языках искаропки,
...и тормознет раза в три в каком-нибудь глубоком цикле, где микросекунды превращаются в часы. Если один кодек кодирует мувик за 10 минут, а второй за полчаса - ты каким будешь пользоваться? Ну вот большинство людей недвусмысленно выбирает первый вариант, по поводу чего си до сих пор на коне и на покой не собирается.
> а IO-checker'ы, overflow-checker'ы и прочее - флаг компилятора расскажи о других ЯП)))
Си не для тех кто дрейфует без руля и без ветрил, не понимая что делает. Ну примерно как наиболее опасные предметы недееспособным не продают. А человеку разумному ограничения, свисточки и звоночки навешиваемые на недееспособных, гадящих под себя - мешают, знаете ли.
> почти все сишники поголовно пишут небезопасный код обзывая друг друга дyраками и
> прочей лестью.Когда ты сможешь написать на своих любимых ЯП хотя-бы простенький lempel-ziv, ну хоть декомпрессор для оного и поффтыкаешь на соотношение скорости работы vs полученная степень сжатия vs как это соотносится с другими проектами - осознаешь почему большинство софта таки пишут на си. Ибо когда оно тормозит как LZMA а жмет как LZO - это достаточно обидно получается, да? :)
>> Как же ты пользуешься костыльными операционками?
> как-то так.Генерал Фэйлор читает диск. Это так умно - полить сишников гомном и обнаружить что без них, оказывается, лыжи встают на асфальт и что-то не едут. Тебе не кажется что довольно странная идея - гадить там где ты живешь да еще яростно пи...ть санитаров при попытке убрать твое дepьмо?
> зачем? достаточно новый код писать на легких, быстрых и понятных языках, созданными
> человеками для человеков, благо такие есть.Си - легкий и быстрый, оверхед минмален и медвежьи услуги по автоподтиранию зада всяким обделавшимся - не навязываются. И достаточно понятный (если это не obfuscated C contest, конечно). Его "core part" можно кой-как по минимуму освоить за полдня, если сильно прижало. Он простой. На самом деле для понимания оного достаточно осознать несколько простых истин насчет того как работают компьютеры и выучить достаточно лаконичный синтаксис.
да, си крутой потому что на нём пишут)) чувак, мы говорим о разном. проехали)
Забавно приписывать плюсы компилятора и оптимизатора языку программирования.
>Новый расширенный генератор "CodeLite"гуд
ура !
Пока ещё сложно судить, сколько проблем переход на новую версию вызовет, но как минимум hedgewars с ним перестал собираться.