URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 109627
[ Назад ]

Исходное сообщение
"Выпуск системы сборки CMake 3.7"

Отправлено opennews , 12-Ноя-16 10:28 
Представлен (https://blog.kitware.com/cmake-3-7-0-available-for-download/) релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.7 (http://www.cmake.org/), выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код  CMake написан на языке C++  и распространяется под лицензией BSD.


CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, минимальным числом зависимостей (нет привязки к M4, Perl или Python), поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.

Основные улучшения (https://cmake.org/cmake/help/v3.7/release/3.7.html#new-features):


-  Поддержка кросскомпилирования для платформы Android;

-  В генератор сценариев для сборочной системы Ninja добавлена поддержка языка Фортран;
-  В команду "if()" добавлена поддержка дополнительных операций сравнения "LESS_EQUAL", "GREATER_EQUAL", "STRLESS_EQUAL", "STRGREATER_EQUAL", "VERSION_LESS_EQUAL", и "VERSION_GREATER_EQUAL";
-  В команде "try_compile()" при оценке сигнатуры файла в сгенерированном тестовом проекте теперь учитываются флаги конфигурации, такие как "CMAKE_LANG_FLAGS_DEBUG" (ранее использовались только флаги по умолчанию);

-  Файлы инструментария теперь могут выставлять переменные окружения  "CMAKE_EXE_LINKER_FLAGS_INIT", "CMAKE_SHARED_LINKER_FLAGS_INIT" и "CMAKE_MODULE_LINKER_FLAGS_INIT" для инициализации в кэше элементов "CMAKE_EXE_LINKER_FLAGS", "CMAKE_SHARED_LINKER_FLAGS" и "CMAKE_MODULE_LINKER_FLAGS" при первой активации языка;

-  В  CTest добавлены свойства "FIXTURES_SETUP", "FIXTURES_CLEANUP" и  "FIXTURES_REQUIRED";

-  Прекращено распространение с сайта проекта исполняемых файлов CMake для архитектуры i386 Linux;
-  Из поставки удалены файлы "cmake-indent.vim", "cmake-syntax.vim", и "cmake-help.vim", вместо которых рекомендуется использовать сценарии от проекта vim-cmake-syntax;
-  Прекращена поддержка самосборки CMake на системах с компиляторами
        Visual Studio 7.1, Visual Studio2005  и MinGW.org mingw32 (следует использовать Visual Studio  2008, MSYS2 mingw32 и mingw64). Поддержка данных компиляторов для формирования сценариев сборки  в других проектах сохранена.

URL: https://blog.kitware.com/cmake-3-7-0-available-for-download/
Новость: http://www.opennet.me/opennews/art.shtml?num=45483


Содержание

Сообщения в этом обсуждении
"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 10:28 
А существует генератор генератора сценариев сборки?

"Выпуск системы сборки CMake 3.7"
Отправлено devpreview , 12-Ноя-16 23:49 
qmake

"Выпуск системы сборки CMake 3.7"
Отправлено all_glory_to_the_hypnotoad , 13-Ноя-16 17:29 
так это cmake и есть, оно генерирует сценарии для make. Есть ещё генераторы из различных проприетарных форматов в сmake.

"Выпуск системы сборки CMake 3.7"
Отправлено Плазма полетела , 12-Ноя-16 10:53 
А кто-нибудь проверял исходный код компиляторов? И чем вообще компилируются компиляторы?

"Выпуск системы сборки CMake 3.7"
Отправлено Алексей , 12-Ноя-16 11:01 
Одним из шагов проверки надежности компилятора является сборка его самим собой. Думаю вопрос закрыт?

"Выпуск системы сборки CMake 3.7"
Отправлено klalafuda , 12-Ноя-16 12:07 
Я взял исходники gcc и собрал их имеющимся бинарным gcc. Само по себе это конечно здорово и увлекательно, но что это говорит с точки зрения надежности компилятора? Помимо того, что я могу собрать gcc версии A gcc-ой верии B.

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 13:17 
После сборки и установки версии B собери версией B ещё раз исходники версии B.

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 15:08 
Я вам скажу по секрету, gcc собирает себя дважды (или даже трижды, уже не помню). Первый раз - вашей локальной версией gcc. Второй раз - собранной версией на первом шаге. Третий раз - собранной на втором шаге, после чего, вроде, проверяется, что вторая и третья версия эквивалентны.

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 17:15 
При сборке г-цы-цы г-ц-цой и при ее кросскомпиляции часто --disable-bootstrap добавляют чтобы собирать только один раз

"Выпуск системы сборки CMake 3.7"
Отправлено yaa , 14-Ноя-16 19:06 
> При сборке г-цы-цы г-ц-цой и при ее кросскомпиляции часто --disable-bootstrap добавляют чтобы собирать только один раз

Да, только не Абрам, а Мойше, не на скачках, а в преферанс, не в Лондоне, а в Житомире, не 20 тыс., а 20 рублей и не выиграл, а проиграл.


"Выпуск системы сборки CMake 3.7"
Отправлено анон , 13-Ноя-16 16:58 
А что такое надежность компилятора? Он собрал вашу программу или нет? Собственно, о чем переживания?

"Выпуск системы сборки CMake 3.7"
Отправлено DG94 , 14-Ноя-16 11:38 
Компиляторы тоже люди пишут, и в них могут встречаться различные ошибки, к примеру неверная трансляция определенного участка кода в ассемблер, и получится так что программист вроде все сделал правильно а программа не компилируется. Для предотвращения подобных случаев и существуют автоматические системы тестирования, а сборка компилятора самим собой это одна из традиционных проверок любого компилятора.

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 14-Ноя-16 20:00 
Вручную скомпилируй TCC. Затем откомпилируй PCC полученным TCC. Затем откомпилируй GCC полученным PCC. И наслаждайся.

"Выпуск системы сборки CMake 3.7"
Отправлено Comdiv , 12-Ноя-16 15:44 
> Одним из шагов проверки надежности компилятора является сборка его самим собой.
> Думаю вопрос закрыт?

На тьюринговской лекции Кен Томпсон рассказал, как в качестве эксперимента внедрил в исходный код компилятора Си специальный функционал, который внедрял дополнительный код в компилируемые программы в том числе и сам компилятор. После этого он изменил зловредный код таким образом, чтобы его наличие в исполнимом файле не требовало наличия в исходном и поэтому не могло быть обнаружено просмотром исходников.

Это лишь забавный пример того, что вопрос несколько сложней, чтобы его так просто закрывать.


"Выпуск системы сборки CMake 3.7"
Отправлено АнонимХ , 12-Ноя-16 15:56 
Это, пожалуйста, унесите на винфак. Там студия внедряет сбор телеметрии в твою программу, если специально это не предотвратить. Интегрирует это с нашумевшим общесистемным сбором данных о пользователе

"Выпуск системы сборки CMake 3.7"
Отправлено Comdiv , 12-Ноя-16 16:28 
Когда в 1983 Кен Томпсон на пару с Деннисом Ритчи получал Тьюринговскую премию за разработку UNIX ни о какой Windows с Visual Studio, как Вы понимаете, речь не шла. Проблема несколько шире.

"Выпуск системы сборки CMake 3.7"
Отправлено . , 12-Ноя-16 20:28 
Они эту премию получили за соооовсем другое! :)
А та проблема о чём ты пытаешься говорить - есть только на закрытых платформах.
Да даже и там - мсявок вот за руку поймали :)

Но безусловно, если булки расслабить то поимеют :)


"Выпуск системы сборки CMake 3.7"
Отправлено YetAnotherOnanym , 12-Ноя-16 23:28 
> есть только на закрытых платформах

Доооооо... Хоть сто раз пересобери мир, если в компиляторе изначально была закладка, она все сто раз перекочует в новый компилятор.


"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 23:41 
> Доооооо... Хоть сто раз пересобери мир, если в компиляторе изначально была закладка,
> она все сто раз перекочует в новый компилятор.

Однако ж можно попользоваться Тюрингом против закладок.
1) Закладка может оказаться видима в каком-нибудь ассемблерном листинге и дебагере. Предусмотреть все такие фокусы програмера не то что невозможно, НО довольно сложно.
2) Програмер может делать достаточно нестандартные вещи типа кросскомпила или сборки программы без рантайма (nostdlib). И тут вредительский код делает допустим файловые операции. А у нас - обана - вообще нету файловых операций. Что будет дальше? Скорее всего линкер скажет случилась что какая-то фигня и конструкция будет запалена. Наверное это тоже можно заделать в закладке но закладка стнет жирной и бажной и станет создавать аномалии лишний раз.

Тюринг работает в обе стороны: как на атакующего так и на защищающегося. Атакующий может сделать что-то чего защищающийся не предосмотрел. Защищающийся точно так же может создать ситуацию которую атакующий не предусмотрел.


"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 16-Ноя-16 18:15 
Так не пересобирай мир закрытыми компиляторами. И да, достаточно много глаз смотрят исходники GCC.

"Выпуск системы сборки CMake 3.7"
Отправлено Comdiv , 13-Ноя-16 00:56 
> Они эту премию получили за соооовсем другое! :)

Ознакомьтесь:
http://amturing.acm.org/award_winners/thompson_4588371.cfm

> With Dennis M. Ritchie, for their development of generic operating systems theory
> and specifically for the implementation of the UNIX operating system.


"Выпуск системы сборки CMake 3.7"
Отправлено deadfood , 12-Ноя-16 16:35 
>внедрил в исходный код компилятора Си

зачем так сложно? простенький файловый вирус в gcc и всё


"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 23:43 
> зачем так сложно? простенький файловый вирус в gcc и всё

И вот собираю я gcc'ом допустим бутлоадер какой, где такого понятия как файл вообще нету. И как это должно работать?


"Выпуск системы сборки CMake 3.7"
Отправлено Линукс еще не готов , 13-Ноя-16 08:50 
Если в компилируемом файле нет обращений к файловой системе то не внедрять ничего.

"Выпуск системы сборки CMake 3.7"
Отправлено DG94 , 14-Ноя-16 11:53 
Хоть я довольно подозрительный человек, но даже у меня не возникало подозрений к GCC или Clang тем более что код этих проектов открыт и при большом желании можно провести их аудит (насколько это затратно это уже другой вопрос), да и разработчики компиляторов частенько заглядывают под капот проектов конкурентов, а при обнаружении подобных закладок молчать бы они точно не стали.

"Выпуск системы сборки CMake 3.7"
Отправлено Comdiv , 14-Ноя-16 14:43 
Значит, Вы не такой уж и подозрительный человек. Есть такой конкурс http://underhanded-c.org . В отличии от конкурса обфусцированного кода здесь ценят прилично выглядящий, хорошо написанный код, который делает не совсем то, что можно ожидать. Закладки, оформленные в таком стиле не так просто обнаружить.

Это не означает, что нечто подобное внедрено в gcc.


"Выпуск системы сборки CMake 3.7"
Отправлено gresolio , 12-Ноя-16 13:46 
"Раскрутка компилятора"
https://ru.wikipedia.org/wiki/%D0%A0%D0%...

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 23:35 
> И чем вообще компилируются компиляторы?

Традиционно - самим собой :)



"Выпуск системы сборки CMake 3.7"
Отправлено жабабыдлокодер , 12-Ноя-16 16:12 
*меланхолично
ReactOS - это не то, что стоит заносить в достижения... В отличие от KDE или Blender...

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 17:18 
> *меланхолично
> ReactOS - это не то, что стоит заносить в достижения... В отличие
> от KDE или Blender...

С такой альтернативной логикой прохождение юнит-тестов надо вообще заносить в регресс


"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 23:33 
> С такой альтернативной логикой прохождение юнит-тестов надо вообще заносить в регресс

Практика показала что можно зарелизить жутко бажный продукт пройдя однако ж все юниттесты.

А реактос показал что можно 17 лет страдать хней, запуская ОС на виртуалочке. Совсем как живое, только не работает. Настолько что разработчики азрабатывают этот крап в уютной максималке с вьюжлостудией. Тьфу.


"таки я дико извиняюсь,"
Отправлено онани_ст , 13-Ноя-16 01:15 
но вы допустили ошибку в слове  ректумтос

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 13-Ноя-16 02:34 
Какое отношение Ваш полет бреда имеет к CMake?

"Выпуск системы сборки CMake 3.7"
Отправлено Вы забыли заполнить поле Name , 13-Ноя-16 02:18 
Это скрытая реклама.

"Выпуск системы сборки CMake 3.7"
Отправлено DG94 , 14-Ноя-16 20:05 
Не пойму почему так хейтят ReactOS, ведь вроде его разработка приносит пользу проекту Wine который иногда бывает весьма полезен. Да и вообще если проект разрабатывается значит приносит какие-то профиты, редко что-то убыточное держится исключительно на одном энтузиазме.

"Выпуск системы сборки CMake 3.7"
Отправлено жабабыдлокодер , 14-Ноя-16 21:50 
Wine НЕ берет ничего из ReactOS.

"Выпуск системы сборки CMake 3.7"
Отправлено DG94 , 15-Ноя-16 01:14 
ReactOS works with the WINE project to share as much programming effort as possible. ReactOS depends on Wine mainly for user mode DLLs. Where appropriate, patches to Wine are also submitted by the development team, and patch contributors are often directed to Wine if it is felt that the patches would benefit them.

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 12-Ноя-16 23:49 
Как так, про cmake-server в списке основных изменений написать забыли!

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 13-Ноя-16 06:54 
> В команду "if()" добавлена поддержка дополнительных операций сравнения "LESS_EQUAL", "GREATER_EQUAL", "STRLESS_EQUAL", "STRGREATER_EQUAL", "VERSION_LESS_EQUAL", и "VERSION_GREATER_EQUAL"

Синтаксис по прежнему кошмарен.


"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 13-Ноя-16 10:40 
-DLOOONGCAT ……………………

"Выпуск системы сборки CMake 3.7"
Отправлено Аноним , 14-Ноя-16 15:46 
-DLONGCAT_IS_LOOOOOOOOOOOOOOOOOOONG

"Выпуск системы сборки CMake 3.7"
Отправлено нет , 18-Ноя-16 16:21 
первый релиз без презрительных каментов о превосходстве над autotools. По крайней мере самое любимое слово адептов 'autocrap' уже не встречается. Надеюсь, сменили область приложения усилий.