The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз системы сборки CMake 3.23

04.04.2022 14:23

Представлен релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.23, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.

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

Основные улучшения:

  • В файлы "cmake-presets" добавлено необязательное поле "include", при помощи которого можно подставлять по месту содержимое других файлов.
  • В генераторы сборочных сценариев для Visual Studio 2019 и более новых версий добавлена поддержка csproj-файлов .NET SDK для проектов на языке C#.
  • Добавлена поддержка компилятора IBM Open XL C/C++, основанного на LLVM. Компилятор доступен под идентификатором IBMClang.
  • Добавлена поддержка компилятора MCST LCC (развивается для процессоров Эльбрус и SPARC (МЦСТ-R)). Компилятор доступен под идентификатором LCC.
  • В команду "install(TARGETS)" добавлен новый аргумент "FILE_SET", который можно использовать для установки набора заголовочных файлов, связанного с выбранной целевой платформой.
  • В команду "target_sources()" добавлен режим "FILE_SET", при помощи которого можно добавить набор c определённым типом файлов с кодом, например, с заголовочными файлами.
  • В переменную "CMAKE_CUDA_ARCHITECTURES" и свойство целевой платформы "CUDA_ARCHITECTURES" добавлена поддержка значений "all" и "all-major" для CUDA toolkit 7.0+.


  1. Главная ссылка к новости (https://www.kitware.com/cmake-...)
  2. OpenNews: Android переходит на сборочную систему Bazel
  3. OpenNews: Сотрудник Red Hat представил сборочную систему Goals. Выпуск GNU Make 4.3
  4. OpenNews: Android переходит на сборочную систему Bazel
  5. OpenNews: Релиз goredo 1.0.0, реализации системы сборки redo, предложенной DJB
  6. OpenNews: Релиз системы сборки CMake 3.22
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/56962-cmake
Ключевые слова: cmake, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (16) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Невыездной (?), 14:37, 04/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    "Добавлена поддержка компилятора MCST LCC"
    Так победим!
     
  • 1.3, Аноним (3), 15:52, 04/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Добавлена поддержка компилятора MCST LCC

    Нафиг нам ваш собственный компилятор. Лучше бы в Clang поддержку добавили.

     
     
  • 2.5, llolik (ok), 16:19, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Лучше бы в Clang поддержку добавили

    clang построен на базе LLVM. Над поддержкой LLVM работают (и вроде как успешно), насколько я в курсе. Проблема в том, как я понял, что IR виртуальной машины LLVM не сильно подходит для VLIW и Эльбруса, как следствие (здесь же большая часть возложена как раз на компилятор и его оптимизации). Следовательно, код получается крайне непроизводительным и тормозным.

    Проблему решили, опять же насколько я понял, трансляцией LLVM-овского IR в LCC-шный и последующей окончательной компиляцией уже в собственным LCC. Так получается продуктивней.

     
     
  • 3.17, Аноним (3), 11:11, 05/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В чём продуктивность? Если LLVM IR не очень подходит, то надо дорабатывать именно его. Потому что иначе не видать вам для эльбрусов OpenCL и Vulkan (llvmpipe), эффективных нейросетей на CPU, декомпиляторов, рекомпиляторов и даже JIT-ускоренных ЯП-виртуальных машин. Ибо современный подход состоит в том, что всё это делается поверх LLVM и оперирует с LLVM IR.

    Не адаптируя LLVM к своей платформе создатели отрезают её от экосистемы утилит на основе LLVM. Коммерчески может это и правильно, ведь можно написать своё проприетарное и продавать за деньги, и кое-кому придётся это купить. Но платформу это губит.

     
     
  • 4.18, llolik (ok), 12:14, 05/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > В чём продуктивность?
    > Если LLVM IR не очень подходит, то надо дорабатывать именно его.

    Тут на opennet есть более компетентные чем я в этом вопросе товарищи, но как я понял, доделать LLVM
    - во-первых, это всё равно, что его переделать полностью, потому что даже на ARM оно перенесено большой кровью, что уж говорить про VLIW.
    - во-вторых, для VLIW нужен именно оптимизирующий (!!!) компилятор. Т.е. как минимум оптимизатор и кодогенерацию придётся всё равно пихать в LLVM (не заикаюсь уже про открыть).

    Чем это проще, чем реализованный подход? От LLVM остаётся по-сути в виде фронтенда и генератора IR как и был, но бэкендом компиляции/оптимизации выступает LCC - собственный компилятор, который разбирает и транслирует уже в нативный код.  В таком случае, всё, что реализовано поверх LLVM - остаётся в силе. Сложности с JIT-ами, там да, ибо JIT и VLIW стыкуются слабо.

    > Потому что иначе не видать вам для эльбрусов OpenCL и Vulkan (llvmpipe)

    Ну это вряд-ли, в данном конкретном разрезе CPU безразличен.

    Тему с LLVM, насколько я слышал, вообще начали развивать не из любви к искусству или опенсоурсу, а из-за языков как раз, и растущей популярности всяких Rust/Go/etc., без которых FF (а уже и в перспективе я так понмаю Chromium) уже не соберёшь.

     
  • 2.20, Аноним (-), 16:16, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Нафиг нам ваш собственный компилятор. Лучше бы в Clang поддержку добавили.

    Что не понятного? Если фирма работает "армейским способом" то и результат получается харвктерный.

     

  • 1.4, pashev.ru (?), 16:00, 04/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Простой синтаксис - это баш, а симэйк ни разу не простой, это миф.
     
     
  • 2.6, null (??), 16:26, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Баш максимально упоротый синтаксис, cmake или python намного понятнее.
     
     
  • 3.10, YetAnotherOnanym (ok), 18:39, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Перекличку адептов Единственно Правильного Синтаксиса объявляю открытой.
     
  • 3.19, Аноним (-), 01:22, 06/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще это от кодера зависит.
     
  • 2.16, Аноним (16), 07:22, 05/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    На самом деле синтаксис у cmake проще некуда. Проблема с ним (как и с прочими утилитами подобного плана) в том, что для запоминания недостаточно практики. Пишут файлы один раз на старте проекта, а потом он просто работает. Всё забывается. Через может пару месяцев надо что-то дописать. Заглубился, дописал, опять забросил на длительный срок. Так и выходит, что каждый раз - как в первый.
     

  • 1.8, YM2608 (?), 18:19, 04/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, каким компилятором можно компилировать в чистом DOS из командной строки, а то БорландС 3 работает из GUI
     
     
  • 2.11, Совершенно другой аноним (?), 18:59, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если в чистом DOS и для чистого DOS, то от Borland-а есть утилита командной строки bcc.exe, не от Borland-а можно поискать Watcom C++ - там wcc, если правильно помню, правда он уже только для Dos-extender-ов код генерирует.
     
  • 2.12, Аноним (12), 20:08, 04/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://www.delorie.com/djgpp/
    https://github.com/open-watcom/open-watcom-v2
     
     
  • 3.14, YM2608 (?), 01:08, 05/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    всем Спасибо
     

  • 1.9, lucentcode (ok), 18:27, 04/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная новость! CMake хорош, чтобы и кто не говорил. Очень хорош.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру