CMake

Программные средства разработки

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

CMake

Непрочитанное сообщение Olej » 16 авг 2016, 15:59

Мне тут один заказчик упёрся: переделай ему уже сделанный проект на сборку не make (Makefile), а с помощью CMake.
А я с CMake работал последний раз в 2009-м году... :-o
Приходится вспоминать, а, заодно, зафиксировать источники информации о CMake, оказавшиеся полезными.

Введение в CMake
CMake — кроcсплатформенная утилита для автоматической сборки программы из исходного кода. При этом сама CMake непосредственно сборкой не занимается, а представляет из себя front-end. В качестве back-end`a могут выступать различные версии make и Ninja.
CMake
Достаточно давно разработанная в сообществе GNU система Autotools на базе Perl и M4 является широко распространённой, но требует определённых навыков для практического использования. Существующие версии в ряде случаев несовместимы друг с другом. Autotools реализована для Unix/Linux платформ.
...
CMake же написан на языке C и использует крайне простой макроязык. В то же время этого языка оказывается достаточно для большей части задач конфигурирования. Отдельные операции конфигурирования реализованы в виде подключаемых модулей.

Многие известные свободные проекты (например, Blender, Wesnoth) только начали переход от Autotools к Scons и CMake, и ещё не приняли однозначного решения в пользу Scons или CMake.
Т.е. CMake - это приблуда для тех, кто не умеет или не может использовать make и Autotools в силу ... убогости своей операционной системы ... a'la Windows :oops:
Разработка CMake, таким образом, инициирована теми, кто мечтал бы о переносе своего ПО куда-то из Linux далее...
Заполняя макросы файла скрипта сборки CMakeLists.txt отчётливо видно, что оно гораздо больше ориентировано на C++ нежели C.
Не удивительно, поэтому, что в Linux CMake протаскивают именно Qt и KDE.

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 16 авг 2016, 16:04

Olej писал(а): Разработка CMake, таким образом, инициирована теми, кто мечтал бы о переносе своего ПО куда-то из Linux далее...
Заполняя макросы файла скрипта сборки CMakeLists.txt отчётливо видно, что оно гораздо больше ориентировано на C++ нежели C.
Не удивительно, поэтому, что в Linux CMake протаскивают именно Qt и KDE.
И тем не менее, с CMake нужно уметь работать (и это достаточно просто).

Поэтому подборка достаточных руководств для этого:

CMake 2.8.9 Documentation - оригинальная документация CMake.

CMake » 3.6.1 Documentation - документация по версии 3.6.1 ... да и по всем другим версиям на выбор (на странице Reference Documentation список).

CMake Tutorial - очень краткий перевод на русский:
Эта статья находится в разработке!
Используем Cmake для автоматической генерации makefile в проектах - примеры использования CMake ... так себе, средненькие ... но остальные ещё хуже.

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 16 авг 2016, 17:02

Olej писал(а): И тем не менее, с CMake нужно уметь работать (и это достаточно просто).
Ну и вот мой тестовый проект ... это не так просто для CMake: а). это агент SNMP, б). язык ANSI C, в). активно используются опции компилятора и библиотеки, определяемые внешней командой net-snmp-config ... т.е. условия во всём не те, для которых заточен CMake...

1-я фаза - из CMakeLists.txt генерируется Makfile:

Код: Выделить всё

[olej@dell snmp.12.Cmake]$ cmake ./
-- Configuring done
-- Generating done
-- Build files have been written to: /home/olej/2016_WORK/own.WORK/SNMP/snmp.12.Cmake

Код: Выделить всё

[olej@dell snmp.12.Cmake]$ ls -l Makefile*
-rw-rw-r--. 1 olej olej 8194 авг 16 16:48 Makefile
-rw-r--r--. 1 olej olej  257 авг 16 12:39 Makefile.1
-rw-r--r--. 1 olej olej  437 авг 16 14:32 Makefile.2
Makefile.1 и Makefile.2 - это файлы, написанные вручную для того же проекта.
Читать сгенерированный Makefile, конечно, просто невозможно (329 строк!).

2-я фаза - компиляция и сборка с помощью GCC по этому Makefile:

Код: Выделить всё

[olej@dell snmp.12.Cmake]$ make
[ 14%] Building C object CMakeFiles/f3d.dir/subagent.c.o
[ 28%] Building C object CMakeFiles/f3d.dir/common.c.o
[ 42%] Building C object CMakeFiles/f3d.dir/alarmChg.c.o
[ 57%] Building C object CMakeFiles/f3d.dir/filePath.c.o
[ 71%] Building C object CMakeFiles/f3d.dir/numberOfRaws.c.o
[ 85%] Building C object CMakeFiles/f3d.dir/ozRawTable.c.o
[100%] Linking C executable f3d
[100%] Built target f3d
Ну и формальная проверка того, что это работоспособный AgentX субагент SNMP:

Код: Выделить всё

[olej@dell snmp.12.Cmake]$ sudo ./f3d -x
[sudo] пароль для olej:
NET-SNMP version 5.7.3 AgentX subagent connected

Код: Выделить всё

[olej@dell codes]$ snmpwalk 127.0.0.1 -v1 -c public .1.3.6.1.4.1.8765.19
SNMPv2-SMI::enterprises.8765.19.1.0 = INTEGER: 7
SNMPv2-SMI::enterprises.8765.19.2.1.1.1 = INTEGER: 1
SNMPv2-SMI::enterprises.8765.19.2.1.1.2 = INTEGER: 2
SNMPv2-SMI::enterprises.8765.19.2.1.1.3 = INTEGER: 3
SNMPv2-SMI::enterprises.8765.19.2.1.1.4 = INTEGER: 4
SNMPv2-SMI::enterprises.8765.19.2.1.1.5 = INTEGER: 5
SNMPv2-SMI::enterprises.8765.19.2.1.1.6 = INTEGER: 6
SNMPv2-SMI::enterprises.8765.19.2.1.1.11 = INTEGER: 11
SNMPv2-SMI::enterprises.8765.19.2.1.2.1 = STRING: "string #1"
SNMPv2-SMI::enterprises.8765.19.2.1.2.2 = STRING: "string #2"
SNMPv2-SMI::enterprises.8765.19.2.1.2.3 = STRING: "string #3"
SNMPv2-SMI::enterprises.8765.19.2.1.2.4 = STRING: "string #4"
SNMPv2-SMI::enterprises.8765.19.2.1.2.5 = STRING: "string #5"
SNMPv2-SMI::enterprises.8765.19.2.1.2.6 = STRING: "string #6"
SNMPv2-SMI::enterprises.8765.19.2.1.2.11 = STRING: "+++++"
SNMPv2-SMI::enterprises.8765.19.7.0 = STRING: "/etc/snmp.data/f3d1.dat"
End of MIB
P.S. И на то, чтобы написать вместо меня Makefile, CMake создаёт ещё файлов/каталогов мусора на 1/2 мегабайта.
Вложения
CMakeLists.txt
(676 байт) 93 скачивания

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 13:54

Olej писал(а):
16 авг 2016, 15:59
Мне тут один заказчик упёрся: переделай ему уже сделанный проект на сборку не make (Makefile), а с помощью CMake.
А я с CMake работал последний раз в 2009-м году...
После работы с CMake в 2009 году, мне ещё пришлось с ним столкнуться в зарубежном проекте 2016 года...
После большого перерыва наблюдаю что там произошло:
- CMake всё больше применяется в крупных корпоративных проектах сборки, это да...
- здесь вот можно посмотреть несколько десятков известнейших проектов: CMake
Latest Release (3.21.1)
Но вот что меня сейчас особенно заинтересовало - The Ninja build system
v1.10.2, Nov 2020
- CMake
A widely used meta-build system that can generate Ninja files on Linux as of CMake version 2.8.8. Newer versions of CMake support generating Ninja files on Windows and Mac OS X too.
Это применительно к темам:
Ninja
Chromium инструментарий
Chromium - сборка и модификация

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 15:38

Olej писал(а):
19 авг 2021, 13:54
Но вот что меня сейчас особенно заинтересовало - The Ninja build system
По поводу вообще всех генераторов имеющихся в CMake - это здесь, в документации:
cmake-generators(7)

По поводу свежей возможности генерации под Ninja там же:
Ninja
Ninja Multi-Config
New in version 3.17
По поводу того, есть ли такая возможность генерации под Linux - ничего пока не нашёл!
Тут многое будет зависеть от версий!

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 15:50

Olej писал(а):
19 авг 2021, 15:38
Тут многое будет зависеть от версий!
У меня в свежей (чистой) инсталляции:

Код: Выделить всё

olej@R420:~$ aptitude search cmake
p   cmake                                                            - кроссплатформенная система make с открытым исходным кодом                  
p   cmake:i386                                                       - кроссплатформенная система make с открытым исходным кодом                  
p   cmake-curses-gui                                                 - Основанный на curses пользовательский интерфейс для CMake (ccmake)         
p   cmake-curses-gui:i386                                            - Основанный на curses пользовательский интерфейс для CMake (ccmake)         
p   cmake-data                                                       - файлы данных CMake (модули, шаблоны и документация)                        
p   cmake-doc                                                        - расширенная документация в различных форматах для CMake                    
p   cmake-extras                                                     - Extra CMake utility modules                                                
p   cmake-fedora                                                     - Set of scripts and cmake modules that simplify the release process         
v   cmake-gui                                                        -                                                                            
v   cmake-gui:i386                                                   -                                                                            
p   cmake-qt-gui                                                     - Qt based user interface for CMake (cmake-gui)                              
p   cmake-qt-gui:i386                                                - Qt based user interface for CMake (cmake-gui)                              
p   cmake-vala                                                       - CMake utility modules needed for building Vala Panel (and related projects)
p   extra-cmake-modules                                              - Extra modules and scripts for CMake                                        
p   extra-cmake-modules:i386                                         - Extra modules and scripts for CMake                                        
p   icmake                                                           - Intelligent C-like MAKEr, or the ICce MAKE utility                         
p   icmake:i386                                                      - Intelligent C-like MAKEr, or the ICce MAKE utility                         
p   icmake-doc                                                       - Файлы документации для icmake                                              
v   icmake-doc:i386                                                  -                                                                            
p   libignition-cmake-dev                                            - Ignition Robotics CMake Library - Development files                        
p   libignition-cmake2-dev                                           - Ignition Robotics CMake Library - Development files                        
p   libmarc-file-marcmaker-perl                                      - work with MARCMaker/MARCBreaker records                                    
v   librust-cmake+default-dev                                        -                                                                            
v   librust-cmake-0+default-dev                                      -                                                                            
v   librust-cmake-0-dev                                              -                                                                            
v   librust-cmake-0.1+default-dev                                    -                                                                            
v   librust-cmake-0.1-dev                                            -                                                                            
v   librust-cmake-0.1.40+default-dev                                 -                                                                            
v   librust-cmake-0.1.40-dev                                         -                                                                            
p   librust-cmake-dev                                                - Build dependency for running cmake to build a native library - Rust source 
p   pd.build-cmake-module                                            - Pure Data CMake Module                                                     
p   ros-cmake-modules                                                - Robot OS CMake Modules                                                    
По дефаулту CMake просто не установлен...

Код: Выделить всё

olej@R420:~$ aptitude show cmake
Пакет: cmake                                     
Версия: 3.16.3-1ubuntu1
Состояние: не установлен
Мультиархитектура: сторонняя
Приоритет: необязательный
Раздел: devel
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: amd64
Размер в распакованном виде: 19,2 M
Зависит: cmake-data (= 3.16.3-1ubuntu1), procps, libarchive13 (>= 3.3.3), libc6 (>= 2.17), libcurl4 (>= 7.16.2), libexpat1 (>= 2.0.1), libgcc-s1
         (>= 3.0), libjsoncpp1 (>= 1.7.4), librhash0 (>= 1.2.6), libstdc++6 (>= 9), libuv1 (>= 1.11.0), zlib1g (>= 1:1.1.4)
Рекомендует: gcc, make
Предлагает: cmake-doc, ninja-build
Конфликтует: cmake:i386
Предоставляет: cmake:i386 (= 3.16.3-1ubuntu1)
Предоставляется: cmake:i386 (3.16.3-1ubuntu1)
Описание: кроссплатформенная система make с открытым исходным кодом
 CMake позволяет управлять процессом сборки ПО с помощью конфигурационных файлов с простым форматом, одинаковых для всех платформ и компиляторов.
 CMake генерирует файлы Makefile подходящие для текущей системы. CMake — мощная система. Можно выписывать требования к конфигурации системы,
 генерировать код и создавать файлы с директивами препроцессора, выполнять иные преобразования. 
 
 CMake был разработан компанией Kitware в рамках проекта NLM Insight Segmentation and Registration Toolkit. Проект ASCI VIEWS также внёс вклад
 относительно параллельных вычислений. Другие спонсоры: Insight, VTK, VXL. CMake используется проектом KDE.
Домашняя страница: https://cmake.org/
Да и предоставляемая версия слабовата ... в документации CMake относительно Ninja читаем:
New in version 3.17

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 16:03

Olej писал(а):
19 авг 2021, 15:50
Да и предоставляемая версия слабовата ...
Вот здесь находим интересный документ (Wiki) CMake Versions on Linux Distros ... из которого следует, что удовлетворительные версии CMake устанавливаются только в Fedora 32-34:

Код: Выделить всё

Fedora 33
October 2020
3.19.7

Fedora 34
April 2021
3.20.5
Но ... в Ubuntu 16-20 есть сборка в стороннем репозитории:

Код: Выделить всё

Ubuntu 16.04 Xenial
Apr 2016
3.5.1
3.18.2 (Kitware PPA)

Ubuntu 18.04 Bionic
Apr 2018
3.10.2
3.18.2 (Kitware PPA)

Ubuntu 20.04 Focal
Apr 2020
3.16.3
3.18.2 (Kitware PPA)

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 16:13

Olej писал(а):
19 авг 2021, 16:03
Но ... в Ubuntu 16-20 есть сборка в стороннем репозитории:
Порядок добавления этого репозитория описан здесь: Kitware APT Repository
Obtain a copy of our signing key:

Код: Выделить всё

olej@R420:~$ wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
[sudo] пароль для olej:       

olej@R420:~$ echo $?
0
Add the repository to your sources list and update.

Код: Выделить всё

olej@R420:~$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null

olej@R420:~$ sudo apt-get update
Сущ:1 http://dl.google.com/linux/chrome/deb stable InRelease
Сущ:2 http://archive.ubuntu.com/ubuntu focal InRelease                                                                                                                  
Пол:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]                                                                                                 
Сущ:4 https://linux.teamviewer.com/deb stable InRelease                                                                                                                 
Сущ:5 https://brave-browser-apt-release.s3.brave.com stable InRelease                                                                                                   
Сущ:6 http://archive.canonical.com/ubuntu focal InRelease                                                                                                               
Пол:7 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]                                                                                               
Игн:8 http://packages.linuxmint.com uma InRelease                                                                                                                       
Сущ:9 https://packages.microsoft.com/repos/ms-teams stable InRelease                                                                                                    
Сущ:10 http://packages.linuxmint.com uma Release                                                                                                                        
Пол:11 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]                                                                                              
Сущ:12 https://deb.opera.com/opera-stable stable InRelease                                                                                                 
Пол:13 https://apt.kitware.com/ubuntu focal InRelease [11,0 kB]                                                                                     
Пол:15 https://apt.kitware.com/ubuntu focal/main amd64 Packages [32,7 kB]
Пол:16 https://apt.kitware.com/ubuntu focal/main i386 Packages [31,5 kB]
Получено 403 kB за 3с (158 kB/s)           
Чтение списков пакетов… Готово
Install the kitware-archive-keyring package to ensure that your keyring stays up to date as we rotate our keys:

Код: Выделить всё

olej@R420:~$ sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg
olej@R420:~$ sudo apt-get install kitware-archive-keyring
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  kitware-archive-keyring
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 17,3 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 34,8 kB.
Пол:1 https://apt.kitware.com/ubuntu focal/main amd64 kitware-archive-keyring all 2021.06.24 [17,3 kB]
Получено 17,3 kB за 1с (16,4 kB/s)                        
Предварительная настройка пакетов …
Выбор ранее не выбранного пакета kitware-archive-keyring.
(Чтение базы данных … на данный момент установлено 388348 файлов и каталогов.)
Подготовка к распаковке …/kitware-archive-keyring_2021.06.24_all.deb …
Распаковывается kitware-archive-keyring (2021.06.24) …
Настраивается пакет kitware-archive-keyring (2021.06.24) …
As an optional step, if you would like to subscribe to release candidates in addition to production releases, you can add our release candidate repository to your sources.

Код: Выделить всё

olej@R420:~$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal-rc main' | sudo tee -a /etc/apt/sources.list.d/kitware.list >/dev/null

olej@R420:~$ sudo apt-get update
Сущ:1 http://dl.google.com/linux/chrome/deb stable InRelease
Сущ:2 http://archive.canonical.com/ubuntu focal InRelease                                                                                                               
Сущ:3 http://archive.ubuntu.com/ubuntu focal InRelease                                                                                                                  
Сущ:4 https://linux.teamviewer.com/deb stable InRelease                                                                                                                 
Пол:5 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]                                                                                                 
Сущ:6 https://brave-browser-apt-release.s3.brave.com stable InRelease                                                                                                   
Игн:7 http://packages.linuxmint.com uma InRelease                                                                                                                       
Сущ:8 https://deb.opera.com/opera-stable stable InRelease                                                                                                               
Сущ:9 https://packages.microsoft.com/repos/ms-teams stable InRelease                                                                                                    
Сущ:10 http://packages.linuxmint.com uma Release                                                                                                                        
Пол:11 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]                                                                                              
Пол:12 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]                                                          
Сущ:14 https://apt.kitware.com/ubuntu focal InRelease                                                                               
Пол:15 https://apt.kitware.com/ubuntu focal-rc InRelease [11,0 kB]          
Пол:16 https://apt.kitware.com/ubuntu focal-rc/main amd64 Packages [23,5 kB]
Пол:17 https://apt.kitware.com/ubuntu focal-rc/main i386 Packages [23,5 kB]
Получено 386 kB за 2с (160 kB/s)           
Чтение списков пакетов… Готово

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 16:26

Olej писал(а):
19 авг 2021, 16:13
Порядок добавления этого репозитория описан здесь: Kitware APT Repository
Теперь всё становится куда веселее:

Код: Выделить всё

olej@R420:~$ aptitude show cmake cmake-curses-gui cmake-gui
Пакет: cmake                                     
Версия: 3.21.1-0kitware1ubuntu20.04.1
Состояние: не установлен
Мультиархитектура: сторонняя
Приоритет: необязательный
Раздел: devel
Сопровождающий: Kitware Debian Maintainers <debian@kitware.com>
Архитектура: amd64
Размер в распакованном виде: 33,7 M
Зависит: cmake-data (= 3.21.1-0kitware1ubuntu20.04.1), procps, libc6 (>= 2.28), libgcc-s1 (>= 3.0), libssl1.1 (>= 1.1.1), libstdc++6 (>= 9)
Рекомендует: gcc, make
Предлагает: cmake-doc, ninja-build
Конфликтует: cmake:i386
Предоставляет: cmake:i386 (= 3.21.1-0kitware1ubuntu20.04.1)
Предоставляется: cmake:i386 (3.16.3-1ubuntu1), cmake:i386 (3.17.2-0kitware1ubuntu20.04.1), cmake:i386 (3.17.3-0kitware1ubuntu20.04.1), cmake:i386
                 (3.18.0-0kitware1ubuntu20.04.1), cmake:i386 (3.18.0~rc1-0kitware2ubuntu20.04.1), cmake:i386 (3.18.0~rc2-0kitware1ubuntu20.04.1), cmake:i386
                 (3.18.0~rc3-0kitware1ubuntu20.04.1), cmake:i386 (3.18.0~rc4-0kitware1ubuntu20.04.1), cmake:i386 (3.18.1-0kitware1ubuntu20.04.1), cmake:i386
                 (3.18.2-0kitware1ubuntu20.04.1), cmake:i386 (3.18.3-0kitware1ubuntu20.04.1), cmake:i386 (3.18.4-0kitware1ubuntu20.04.1), cmake:i386
                 (3.19.0~rc1-0kitware1ubuntu20.04.1), cmake:i386 (3.19.0~rc2-0kitware1ubuntu20.04.1), cmake:i386 (3.19.0~rc3-0kitware1ubuntu20.04.1), cmake:i386
                 (3.19.1-0kitware1ubuntu20.04.1), cmake:i386 (3.19.2-0kitware1ubuntu20.04.1), cmake:i386 (3.19.3-0kitware1ubuntu20.04.1), cmake:i386
                 (3.19.4-0kitware1ubuntu20.04.1), cmake:i386 (3.19.5-0kitware1ubuntu20.04.1), cmake:i386 (3.20.0-0kitware1ubuntu20.04.1), cmake:i386
                 (3.20.0~rc1-0kitware1ubuntu20.04.1), cmake:i386 (3.20.0~rc2-0kitware1ubuntu20.04.1), cmake:i386 (3.20.0~rc3-0kitware1ubuntu20.04.1), cmake:i386
                 (3.20.0~rc4-0kitware1ubuntu20.04.1), cmake:i386 (3.20.0~rc5-0kitware1ubuntu20.04.1), cmake:i386 (3.20.1-0kitware1ubuntu20.04.1), cmake:i386
                 (3.20.2-0kitware1ubuntu20.04.1), cmake:i386 (3.20.3-0kitware1ubuntu20.04.1), cmake:i386 (3.20.4-0kitware1ubuntu20.04.1), cmake:i386
                 (3.20.5-0kitware1ubuntu20.04.1), cmake:i386 (3.21.0-0kitware1ubuntu20.04.1), cmake:i386 (3.21.0~rc1-0kitware1ubuntu20.04.1), cmake:i386
                 (3.21.0~rc2-0kitware1ubuntu20.04.1), cmake:i386 (3.21.0~rc3-0kitware1ubuntu20.04.1), cmake:i386 (3.21.1-0kitware1ubuntu20.04.1)
Описание: кроссплатформенная система make с открытым исходным кодом
 CMake позволяет управлять процессом сборки ПО с помощью конфигурационных файлов с простым форматом, одинаковых для всех платформ и компиляторов. CMake генерирует файлы
 Makefile подходящие для текущей системы. CMake — мощная система. Можно выписывать требования к конфигурации системы, генерировать код и создавать файлы с директивами
 препроцессора, выполнять иные преобразования. 
 
 CMake был разработан компанией Kitware в рамках проекта NLM Insight Segmentation and Registration Toolkit. Проект ASCI VIEWS также внёс вклад относительно параллельных
 вычислений. Другие спонсоры: Insight, VTK, VXL. CMake используется проектом KDE.
Домашняя страница: https://cmake.org/

Код: Выделить всё

Пакет: cmake-curses-gui
Версия: 3.21.1-0kitware1ubuntu20.04.1
Состояние: не установлен
Приоритет: необязательный
Раздел: devel
Сопровождающий: Kitware Debian Maintainers <debian@kitware.com>
Архитектура: amd64
Размер в распакованном виде: 10,4 M
Зависит: cmake (= 3.21.1-0kitware1ubuntu20.04.1), libc6 (>= 2.28), libgcc-s1 (>= 3.0), libncurses6 (>= 6), libssl1.1 (>= 1.1.1), libstdc++6 (>= 9), libtinfo6 (>= 6)
Конфликтует: cmake-curses-gui:i386
Описание: Основанный на curses пользовательский интерфейс для CMake (ccmake)
 CMake позволяет управлять процессом сборки ПО с помощью конфигурационных файлов с простым форматом, одинаковых для всех платформ и компиляторов. CMake генерирует файлы
 Makefile подходящие для текущей системы. 
 
 This package provides the CMake curses interface. Project configuration settings may be specified interactively through this GUI. Brief instructions are provided at the
 bottom of the terminal when the program is running. The main executable file for this GUI is "ccmake".
Домашняя страница: https://cmake.org/

Код: Выделить всё

Нет подходящей версии для cmake-gui
Пакет: cmake-gui
Состояние: не настоящий пакет
Предоставляется: cmake-qt-gui (3.16.3-1ubuntu1), cmake-qt-gui (3.17.2-0kitware1ubuntu20.04.1), cmake-qt-gui (3.17.3-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.18.0-0kitware1ubuntu20.04.1), cmake-qt-gui (3.18.0~rc1-0kitware2ubuntu20.04.1), cmake-qt-gui (3.18.0~rc2-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.18.0~rc3-0kitware1ubuntu20.04.1), cmake-qt-gui (3.18.0~rc4-0kitware1ubuntu20.04.1), cmake-qt-gui (3.18.1-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.18.2-0kitware1ubuntu20.04.1), cmake-qt-gui (3.18.3-0kitware1ubuntu20.04.1), cmake-qt-gui (3.18.4-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.19.0-0kitware1ubuntu20.04.1), cmake-qt-gui (3.19.0~rc1-0kitware1ubuntu20.04.1), cmake-qt-gui (3.19.0~rc2-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.19.0~rc3-0kitware1ubuntu20.04.1), cmake-qt-gui (3.19.1-0kitware1ubuntu20.04.1), cmake-qt-gui (3.19.2-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.19.3-0kitware1ubuntu20.04.1), cmake-qt-gui (3.19.4-0kitware1ubuntu20.04.1), cmake-qt-gui (3.19.5-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.20.0-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.0~rc1-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.0~rc2-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.20.0~rc3-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.0~rc4-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.0~rc5-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.20.1-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.2-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.3-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.20.4-0kitware1ubuntu20.04.1), cmake-qt-gui (3.20.5-0kitware1ubuntu20.04.1), cmake-qt-gui (3.21.0-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.21.0~rc1-0kitware1ubuntu20.04.1), cmake-qt-gui (3.21.0~rc2-0kitware1ubuntu20.04.1), cmake-qt-gui (3.21.0~rc3-0kitware1ubuntu20.04.1), cmake-qt-gui
                 (3.21.1-0kitware1ubuntu20.04.1)
Обращаем там внимание на фразу:
CMake был разработан компанией Kitware в рамках проекта NLM Insight Segmentation and Registration Toolkit.
Это и есть репозиторий разработчика CMake.

Аватара пользователя
Olej
Писатель
Сообщения: 16461
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: CMake

Непрочитанное сообщение Olej » 19 авг 2021, 16:30

Olej писал(а):
19 авг 2021, 16:26
Это и есть репозиторий разработчика CMake.

Код: Выделить всё

olej@R420:~$ sudo apt install cmake
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  cmake-data
Предлагаемые пакеты:
  cmake-doc
Следующие НОВЫЕ пакеты будут установлены:
  cmake cmake-data
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 12,7 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 43,7 MB.
Хотите продолжить? [Д/н] y
Пол:1 https://apt.kitware.com/ubuntu focal/main amd64 cmake-data all 3.21.1-0kitware1ubuntu20.04.1 [1.851 kB]
Пол:2 https://apt.kitware.com/ubuntu focal/main amd64 cmake amd64 3.21.1-0kitware1ubuntu20.04.1 [10,8 MB]                                                               
Получено 12,7 MB за 1мин 36с (132 kB/s)                                                                                                                                 
Выбор ранее не выбранного пакета cmake-data.
(Чтение базы данных … на данный момент установлено 388353 файла и каталога.)
Подготовка к распаковке …/cmake-data_3.21.1-0kitware1ubuntu20.04.1_all.deb …
Распаковывается cmake-data (3.21.1-0kitware1ubuntu20.04.1) …
Выбор ранее не выбранного пакета cmake.
Подготовка к распаковке …/cmake_3.21.1-0kitware1ubuntu20.04.1_amd64.deb …
Распаковывается cmake (3.21.1-0kitware1ubuntu20.04.1) …
Настраивается пакет cmake-data (3.21.1-0kitware1ubuntu20.04.1) …
Настраивается пакет cmake (3.21.1-0kitware1ubuntu20.04.1) …
Обрабатываются триггеры для man-db (2.9.1-1) …

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/Cromium/VLA.cmake$ cmake --version
cmake version 3.21.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

Ответить

Вернуться в «Инструменты программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость