Обновление
This commit is contained in:
parent
8639788c93
commit
7505316c2c
@ -21,15 +21,13 @@ include::{l10ndir}/{lang}.adoc[]
|
|||||||
│ ├── debug
|
│ ├── debug
|
||||||
│ │ ├── bin
|
│ │ ├── bin
|
||||||
│ │ ├── etc
|
│ │ ├── etc
|
||||||
│ │ ├── files
|
|
||||||
│ │ │ ├── data
|
|
||||||
│ │ │ ├── lib
|
|
||||||
│ │ │ └── log
|
|
||||||
│ │ ├── include
|
│ │ ├── include
|
||||||
│ │ └── lib
|
│ │ ├── lib
|
||||||
|
│ │ ├── log
|
||||||
|
│ │ ├── share
|
||||||
|
│ │ └── var
|
||||||
│ └── release
|
│ └── release
|
||||||
├── .git
|
├── .git
|
||||||
├── .gitlab-ci
|
|
||||||
├── cmake
|
├── cmake
|
||||||
│ ├── cmlib
|
│ ├── cmlib
|
||||||
│ ├── doc
|
│ ├── doc
|
||||||
@ -39,10 +37,10 @@ include::{l10ndir}/{lang}.adoc[]
|
|||||||
│ └── generators
|
│ └── generators
|
||||||
├── doc
|
├── doc
|
||||||
├── files
|
├── files
|
||||||
│ ├── data
|
|
||||||
│ ├── etc
|
│ ├── etc
|
||||||
│ ├── lib
|
│ ├── log
|
||||||
│ └── log
|
│ ├── share
|
||||||
|
│ └── var
|
||||||
├── l10n
|
├── l10n
|
||||||
├── src
|
├── src
|
||||||
│ ├── app
|
│ ├── app
|
||||||
@ -61,14 +59,13 @@ include::{l10ndir}/{lang}.adoc[]
|
|||||||
|`_build/debug` | Результаты компиляции в режиме отладки
|
|`_build/debug` | Результаты компиляции в режиме отладки
|
||||||
|`_build/debug/bin` | Исполняемые файлы
|
|`_build/debug/bin` | Исполняемые файлы
|
||||||
|`_build/debug/etc` | Символическая ссылка на каталог `cmex/files/etc`
|
|`_build/debug/etc` | Символическая ссылка на каталог `cmex/files/etc`
|
||||||
|`_build/debug/files/data` | Символическая ссылка на каталог `cmex/files/data`
|
|
||||||
|`_build/debug/files/lib` | Символическая ссылка на каталог `cmex/files/lib`
|
|
||||||
|`_build/debug/files/log` | Символическая ссылка на каталог `cmex/files/log`
|
|
||||||
|`_build/debug/include` | Заголовочные файлы копируемые и генерируемые во время сборки
|
|`_build/debug/include` | Заголовочные файлы копируемые и генерируемые во время сборки
|
||||||
|`_build/debug/lib` | Статические и динамические библиотеки
|
|`_build/debug/lib` | Статические и динамические библиотеки
|
||||||
|
|`_build/debug/log` | Символическая ссылка на каталог `cmex/files/log`
|
||||||
|
|`_build/debug/share` | Символическая ссылка на каталог `cmex/files/share`
|
||||||
|
|`_build/debug/var` | Символическая ссылка на каталог `cmex/files/var`
|
||||||
|`_build/release` | Результаты компиляции в режиме выпуска (иерархия аналогична `debug`)
|
|`_build/release` | Результаты компиляции в режиме выпуска (иерархия аналогична `debug`)
|
||||||
|`.git` | Системные файлы репозитория git
|
|`.git` | Системные файлы репозитория Git
|
||||||
|`.gitlab.ci` | Шаблон правил для автоматической сборки на сервере Gitlab
|
|
||||||
|`cmake` | Файлы с дополнительными функциями для CMake
|
|`cmake` | Файлы с дополнительными функциями для CMake
|
||||||
|`cmake/cmlib` | Библиотека функций для CMake
|
|`cmake/cmlib` | Библиотека функций для CMake
|
||||||
|`cmake/doc` | Правила для автоматической генерации документации
|
|`cmake/doc` | Правила для автоматической генерации документации
|
||||||
@ -79,9 +76,9 @@ include::{l10ndir}/{lang}.adoc[]
|
|||||||
|`doc` | Документация для проекта
|
|`doc` | Документация для проекта
|
||||||
|`files` | Каталог для дополнительных файлов
|
|`files` | Каталог для дополнительных файлов
|
||||||
|`files/etc` | Каталог для файлов настроек проекта
|
|`files/etc` | Каталог для файлов настроек проекта
|
||||||
|`files/data` | Каталог для неизменяемых файлов
|
|
||||||
|`files/lib` | Каталог для изменяемых файлов
|
|
||||||
|`files/log` | Каталог для журналов
|
|`files/log` | Каталог для журналов
|
||||||
|
|`files/share` | Каталог для неизменяемых файлов
|
||||||
|
|`files/var` | Каталог для изменяемых файлов
|
||||||
|`l10n` | Файлы переводов
|
|`l10n` | Файлы переводов
|
||||||
|`src` | Исходные тексты
|
|`src` | Исходные тексты
|
||||||
|`src/app` | Исходные тексты программы
|
|`src/app` | Исходные тексты программы
|
||||||
@ -115,7 +112,7 @@ git clone --recursive https://git.246060.ru/f1x1t/cmlib-example-base
|
|||||||
=== Инициализация подмодулей
|
=== Инициализация подмодулей
|
||||||
|
|
||||||
Для начала нужно создать каталог для проекта, перейти в него и
|
Для начала нужно создать каталог для проекта, перейти в него и
|
||||||
инициализировать репозиторий git:
|
инициализировать репозиторий:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
@ -133,7 +130,6 @@ git submodule add https://git.246060.ru/f1x1t/cmlib.git cmake/cmlib
|
|||||||
git submodule add https://git.246060.ru/f1x1t/cmake-find.git cmake/find
|
git submodule add https://git.246060.ru/f1x1t/cmake-find.git cmake/find
|
||||||
git submodule add https://git.246060.ru/f1x1t/cmake-generators.git cmake/generators
|
git submodule add https://git.246060.ru/f1x1t/cmake-generators.git cmake/generators
|
||||||
git submodule add https://git.246060.ru/f1x1t/cmake-doc.git cmake/doc
|
git submodule add https://git.246060.ru/f1x1t/cmake-doc.git cmake/doc
|
||||||
git submodule add https://git.246060.ru/f1x1t/uncrustify-config.git cmake/etc/uncrustify
|
|
||||||
git commit -a -m "Начало проекта"
|
git commit -a -m "Начало проекта"
|
||||||
----
|
----
|
||||||
|
|
||||||
@ -146,13 +142,60 @@ git remote add origin АДРЕС_РЕПОЗИТОРИЯ_НА_СЕРВЕРЕ
|
|||||||
git push -u origin master
|
git push -u origin master
|
||||||
----
|
----
|
||||||
|
|
||||||
|
После отправки файлов на сервер отредактировать файл `.gitmodules`,
|
||||||
|
так чтобы он содержал только относительные пути к подмодулям, чтобы
|
||||||
|
система автоматической сборки проекта могла их загружать без дополнительной
|
||||||
|
авторизации. Например, заменить:
|
||||||
|
|
||||||
|
[source,ini]
|
||||||
|
----
|
||||||
|
[submodule "cmake/cmlib"]
|
||||||
|
path = cmake/cmlib
|
||||||
|
url = git@git.246060.ru:f1x1t/cmlib.git
|
||||||
|
[submodule "cmake/find"]
|
||||||
|
path = cmake/find
|
||||||
|
url = git@git.246060.ru:f1x1t/cmake-find.git
|
||||||
|
[submodule "cmake/generators"]
|
||||||
|
path = cmake/generators
|
||||||
|
url = git@git.246060.ru:f1x1t/cmake-generators.git
|
||||||
|
[submodule "cmake/doc"]
|
||||||
|
path = cmake/doc
|
||||||
|
url = git@git.246060.ru:f1x1t/cmake-doc.git
|
||||||
|
----
|
||||||
|
|
||||||
|
на
|
||||||
|
|
||||||
|
[source,ini]
|
||||||
|
----
|
||||||
|
[submodule "cmake/cmlib"]
|
||||||
|
path = cmake/cmlib
|
||||||
|
url = ../../f1x1t/cmlib.git
|
||||||
|
[submodule "cmake/find"]
|
||||||
|
path = cmake/find
|
||||||
|
url = ../../f1x1t/cmake-find.git
|
||||||
|
[submodule "cmake/generators"]
|
||||||
|
path = cmake/generators
|
||||||
|
url = ../../f1x1t/cmake-generators.git
|
||||||
|
[submodule "cmake/doc"]
|
||||||
|
path = cmake/doc
|
||||||
|
url = ../../f1x1t/cmake-doc.git
|
||||||
|
----
|
||||||
|
|
||||||
|
Обновить пути и сохранить изменения:
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
git submodule sync --recursive
|
||||||
|
git add .gitmodules
|
||||||
|
git commit -m "Настройка путей к подмодулям"
|
||||||
|
----
|
||||||
|
|
||||||
Загрузить шаблоны для автоматической сборки проекта в разных вариантах
|
Загрузить шаблоны для автоматической сборки проекта в разных вариантах
|
||||||
программных окружений и зафиксировать изменения:
|
программных окружений и зафиксировать изменения:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
mkdir .gitlab-ci
|
wget https://git.246060.ru/f1x1t/gitlab-ci/raw/branch/master/.gitlab-ci.yml
|
||||||
wget -O .gitlab-ci.yml https://git.246060.ru/f1x1t/gitlab-ci/raw/branch/master/.gitlab-ci.yml
|
|
||||||
git add .gitlab-ci.yml
|
git add .gitlab-ci.yml
|
||||||
git commit -m "Настройка автосборки"
|
git commit -m "Настройка автосборки"
|
||||||
----
|
----
|
||||||
@ -166,30 +209,35 @@ git add .clang-tidy
|
|||||||
git commit -m "Настройка Clang-Tidy"
|
git commit -m "Настройка Clang-Tidy"
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Загрузить файл настройки для программы https://github.com/cheshirekow/cmake_format/[cmake-format],
|
||||||
|
используемой для форматирования файлов CMake:
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
wget https://git.246060.ru/f1x1t/cmake-format/raw/branch/master/.cmake-format.py
|
||||||
|
git add .cmake-format.py
|
||||||
|
git commit -m "Настройка cmake-format"
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
Создать стандартные файлы и каталоги:
|
Создать стандартные файлы и каталоги:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
mkdir -p doc/breathe
|
mkdir -p doc/breathe
|
||||||
touch doc/breathe/index.md.in
|
touch doc/breathe/index.md.in
|
||||||
mkdir -p files/etc
|
mkdir -p files/{etc,log,share,var}
|
||||||
touch files/etc/.keep-directory
|
touch files/{etc,log,share,var}/.gitkeep
|
||||||
mkdir -p files/data
|
|
||||||
touch files/data/.keep-directory
|
|
||||||
mkdir -p files/lib
|
|
||||||
touch files/lib/.keep-directory
|
|
||||||
mkdir -p files/log
|
|
||||||
touch files/log/.keep-directory
|
|
||||||
git add doc files
|
git add doc files
|
||||||
git commit -m "Стандартные файлы и каталоги"
|
git commit -m "Стандартные файлы и каталоги"
|
||||||
----
|
----
|
||||||
|
|
||||||
IMPORTANT: Файлы `.keep-directory` позволяют защитить каталоги от удаления
|
IMPORTANT: Файлы `.gitkeep` позволяют защитить каталоги от удаления
|
||||||
(будет выводиться дополнительное предупреждение, что каталог не пуст) и
|
(будет выводиться дополнительное предупреждение, что каталог не пуст) и
|
||||||
обеспечивают возможность помещения каталогов с систему контроля версий git,
|
обеспечивают возможность помещения каталогов с систему контроля версий Git,
|
||||||
в которой пустые каталоги недопустимы (это правильно!).
|
в которой пустые каталоги недопустимы (это правильно!).
|
||||||
|
|
||||||
Создать файл `.gitignore` для исключения каталогов и файлов из-под контроля git:
|
Создать файл `.gitignore` для исключения каталогов и файлов из-под контроля Git:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
@ -215,7 +263,7 @@ cmake_policy(VERSION 3.0.2..3.7)
|
|||||||
project(cmlib-example-base VERSION 0.2.0 LANGUAGES C CXX)
|
project(cmlib-example-base VERSION 0.2.0 LANGUAGES C CXX)
|
||||||
----
|
----
|
||||||
|
|
||||||
Значение версии следует формировать согласно правилам
|
Значение версии проекта следует формировать согласно правилам
|
||||||
https://semver.org/lang/ru/[семантического версионирования].
|
https://semver.org/lang/ru/[семантического версионирования].
|
||||||
|
|
||||||
Для подключения функций для CMake из библиотеки CMLib, нужно добавить
|
Для подключения функций для CMake из библиотеки CMLib, нужно добавить
|
||||||
@ -223,6 +271,21 @@ https://semver.org/lang/ru/[семантического версиониров
|
|||||||
|
|
||||||
[source,cmake]
|
[source,cmake]
|
||||||
----
|
----
|
||||||
|
###
|
||||||
|
# Обязательные переменные для CMLib
|
||||||
|
###
|
||||||
|
# Название организации
|
||||||
|
set(CMLIB_ORGANIZATION_NAME "Org." CACHE STRING "")
|
||||||
|
|
||||||
|
# Имя автора
|
||||||
|
set(CMLIB_AUTHOR_NAME "John Doe" CACHE STRING "")
|
||||||
|
|
||||||
|
# Почта автора
|
||||||
|
set(CMLIB_AUTHOR_EMAIL "mail@johndoe.com" CACHE STRING "")
|
||||||
|
|
||||||
|
# Краткое описание проекта
|
||||||
|
set(CMLIB_DESCRIPTION "Пример проекта: начало" CACHE STRING "")
|
||||||
|
|
||||||
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
|
# В каталоге cmake/cmlib находятся файлы с библиотечными функциями
|
||||||
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
||||||
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
||||||
@ -234,31 +297,14 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
|
|||||||
include(CMLibCommon)
|
include(CMLibCommon)
|
||||||
----
|
----
|
||||||
|
|
||||||
[[variables-cmake]]
|
Значения обязательных переменных, используемых библиотекой CMLib
|
||||||
В каталоге `cmake/etc` требуется создать файл `Variables.cmake`,
|
для архивирования исходных текстов, автоматического создания пакетов,
|
||||||
в котором должны быть определены переменные, используемые
|
генерации документации, следует отредактировать, после чего
|
||||||
библиотекой CMLib для архивирования исходных текстов, автоматического
|
произведённые изменения можно зафиксировать:
|
||||||
создания пакетов, генерации документации:
|
|
||||||
|
|
||||||
[source,cmake]
|
|
||||||
----
|
|
||||||
set(ORGANIZATION_NAME "org")
|
|
||||||
set(AUTHOR_NAME "John Doe")
|
|
||||||
|
|
||||||
set(DOXYGEN_PROJECT_TITLE "Пример проекта (начало)")
|
|
||||||
set(DOXYGEN_GENERATE_LATEX YES)
|
|
||||||
set(DOXYGEN_GENERATE_HTML YES)
|
|
||||||
|
|
||||||
set(CPACK_PACKAGE_CONTACT "John Doe <box@mail.domain>")
|
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake project example")
|
|
||||||
----
|
|
||||||
|
|
||||||
Произведённые изменения можно зафиксировать:
|
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
git add cmake/etc/Variables.cmake CMakeLists.txt
|
git commit -m "Подключение библиотеки CMLib" CMakeLists.txt
|
||||||
git commit -m "Подключение библиотеки CMLib"
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Чтобы проверить корректность подключения CMLib, можно выполнить команду:
|
Чтобы проверить корректность подключения CMLib, можно выполнить команду:
|
||||||
@ -337,14 +383,14 @@ sudo apt-get install curl libcurl-dev libboost-all-dev
|
|||||||
|
|
||||||
На этапе конфигурирования проекта можно сгенерировать файл, в который
|
На этапе конфигурирования проекта можно сгенерировать файл, в который
|
||||||
будут записаны собранные значения параметров. В библиотеке CMLib
|
будут записаны собранные значения параметров. В библиотеке CMLib
|
||||||
присутствует функция `cmlib_config_hpp_generate()`, создающая файл
|
присутствует функция `cmlib_generate_private_config_hpp()`, создающая файл
|
||||||
`${CMAKE_BINARY_DIR}/include/cmlib_private_config.hpp`, в который
|
`${CMAKE_BINARY_DIR}/include/cmlib_private_config.hpp`, в который
|
||||||
записывается информация о имени и версии проекта, дате и типе сборки.
|
записывается информация о имени и версии проекта, дате и типе сборки.
|
||||||
|
|
||||||
[source,cmake]
|
[source,cmake]
|
||||||
----
|
----
|
||||||
# Автоматически генерируемый заголовочный файл
|
# Автоматически генерируемый заголовочный файл
|
||||||
cmlib_config_hpp_generate()
|
cmlib_generate_private_config_hpp()
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
||||||
@ -452,7 +498,7 @@ set(Boost_USE_STATIC_RUNTIME ON)
|
|||||||
find_package(Boost 1.55.0 REQUIRED)
|
find_package(Boost 1.55.0 REQUIRED)
|
||||||
|
|
||||||
# Автоматически генерируемый заголовочный файл
|
# Автоматически генерируемый заголовочный файл
|
||||||
cmlib_config_hpp_generate()
|
cmlib_generate_private_config_hpp()
|
||||||
|
|
||||||
# Каталог с исходными текстами библиотеки
|
# Каталог с исходными текстами библиотеки
|
||||||
add_subdirectory(src/cmlib-example)
|
add_subdirectory(src/cmlib-example)
|
||||||
@ -568,7 +614,7 @@ set(Boost_USE_STATIC_RUNTIME ON)
|
|||||||
find_package(Boost 1.55.0 REQUIRED)
|
find_package(Boost 1.55.0 REQUIRED)
|
||||||
|
|
||||||
# Автоматически генерируемый заголовочный файл
|
# Автоматически генерируемый заголовочный файл
|
||||||
cmlib_config_hpp_generate()
|
cmlib_generate_private_config_hpp()
|
||||||
|
|
||||||
# Приложение
|
# Приложение
|
||||||
add_subdirectory(src/cmlib-example)
|
add_subdirectory(src/cmlib-example)
|
||||||
@ -800,7 +846,7 @@ target_include_directories(${TRGT} PUBLIC $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/
|
|||||||
|
|
||||||
Для поиска необходимых компонентов Qt5 нужно в файле `CMakeLists.txt`,
|
Для поиска необходимых компонентов Qt5 нужно в файле `CMakeLists.txt`,
|
||||||
находящемся в корневом каталоге проекта, перед вызовом функции
|
находящемся в корневом каталоге проекта, перед вызовом функции
|
||||||
`cmlib_config_hpp_generate()` добавить строку:
|
`cmlib_generate_private_config_hpp()` добавить строку:
|
||||||
|
|
||||||
[source,cmake]
|
[source,cmake]
|
||||||
----
|
----
|
||||||
@ -926,7 +972,7 @@ int main( int argc, char** argv )
|
|||||||
git clone --recursive https://git.246060.ru/f1x1t/cmlib-example-app-qt5-gui
|
git clone --recursive https://git.246060.ru/f1x1t/cmlib-example-app-qt5-gui
|
||||||
----
|
----
|
||||||
|
|
||||||
В каталоге `files/data` создать файл описания включаемых ресурсов `icon.qrc`:
|
В каталоге `files/share` создать файл описания включаемых ресурсов `icon.qrc`:
|
||||||
|
|
||||||
[source,xml]
|
[source,xml]
|
||||||
----
|
----
|
||||||
@ -941,7 +987,7 @@ git clone --recursive https://git.246060.ru/f1x1t/cmlib-example-app-qt5-gui
|
|||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
wget https://git.246060.ru/f1x1t/cmlib-example-app-qt5-gui/raw/branch/master/files/data/icon.png
|
wget https://git.246060.ru/f1x1t/cmlib-example-app-qt5-gui/raw/branch/master/files/share/icon.png
|
||||||
----
|
----
|
||||||
|
|
||||||
Для графического приложения нужно создать файл описания интерфейса
|
Для графического приложения нужно создать файл описания интерфейса
|
||||||
@ -1098,7 +1144,7 @@ set(TRGT_ui
|
|||||||
|
|
||||||
# Файлы описания ресурсов, включаемых в исполняемый файл
|
# Файлы описания ресурсов, включаемых в исполняемый файл
|
||||||
set(TRGT_qrc
|
set(TRGT_qrc
|
||||||
${CMAKE_SOURCE_DIR}/files/data/icon.qrc)
|
${CMAKE_SOURCE_DIR}/files/share/icon.qrc)
|
||||||
###
|
###
|
||||||
# Конец списков файлов
|
# Конец списков файлов
|
||||||
###
|
###
|
||||||
@ -1179,7 +1225,14 @@ git clone --recursive https://git.246060.ru/f1x1t/cmlib-example-app-features
|
|||||||
`dos2unix` и `uncrustify`. Утилита `dos2unix` приводит переводы строк в
|
`dos2unix` и `uncrustify`. Утилита `dos2unix` приводит переводы строк в
|
||||||
файлах к стандарту, принятому в Unix. Утилита `uncrustify` форматирует
|
файлах к стандарту, принятому в Unix. Утилита `uncrustify` форматирует
|
||||||
файлы с исходными кодами на языке C{plus}{plus} в соответствии с правилами,
|
файлы с исходными кодами на языке C{plus}{plus} в соответствии с правилами,
|
||||||
перечисленными в файле `cmake/etc/uncrustify/default.cfg`.
|
перечисленными в файле `cmake/etc/uncrustify/default.cfg`. Можно использовать
|
||||||
|
собственный файл `default.cfg` или подключить подмодуль из репозитория:
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
git submodule add https://git.246060.ru/f1x1t/uncrustify-config.git cmake/etc/uncrustify
|
||||||
|
git commit -m "Настройка uncrustify"
|
||||||
|
----
|
||||||
|
|
||||||
IMPORTANT: Настройка правил форматирования помогает другим разработчикам
|
IMPORTANT: Настройка правил форматирования помогает другим разработчикам
|
||||||
придерживаться вашего стиля программирования и отправлять изменения в ваш
|
придерживаться вашего стиля программирования и отправлять изменения в ваш
|
||||||
@ -1194,6 +1247,16 @@ IMPORTANT: Настройка правил форматирования помо
|
|||||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Для автоматической проверки исходных текстов на соответствие стандарту
|
||||||
|
форматирования можно к локальному репозиторию подключить скрипт, выполняемый
|
||||||
|
перед фиксацией (`pre-commit`):
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
wget -O - https://git.246060.ru/f1x1t/githooks/archive/master.tar.gz | tar zx --strip-components=1 -C .git/hooks
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
=== Статический анализ исходных кодов
|
=== Статический анализ исходных кодов
|
||||||
|
|
||||||
Для работы с программами на языке C{plus}{plus} используются утилиты,
|
Для работы с программами на языке C{plus}{plus} используются утилиты,
|
||||||
|
@ -25,7 +25,7 @@ sudo setcap cap_sys_ptrace=eip /opt/intel/vtune_profiler/bin64/amplxe-perf
|
|||||||
----
|
----
|
||||||
|
|
||||||
[arabic, start=6]
|
[arabic, start=6]
|
||||||
. Создать образ
|
. Создать образ:
|
||||||
`mksquashfs /opt/intel/* /home/user/intel.sfs -comp xz -Xbcj x86 -all-root -b 512K`
|
`mksquashfs /opt/intel/* /home/user/intel.sfs -comp xz -Xbcj x86 -all-root -b 512K`
|
||||||
. Удалить содержимое каталога `/opt/intel`.
|
. Удалить содержимое каталога `/opt/intel`.
|
||||||
. Примонтировать образ:
|
. Примонтировать образ:
|
||||||
@ -37,3 +37,33 @@ sudo setcap cap_sys_ptrace=eip /opt/intel/vtune_profiler/bin64/amplxe-perf
|
|||||||
source /opt/intel/bin/compilervars.sh intel64
|
source /opt/intel/bin/compilervars.sh intel64
|
||||||
source /opt/intel/vtune_profiler/amplxe-vars.sh
|
source /opt/intel/vtune_profiler/amplxe-vars.sh
|
||||||
----
|
----
|
||||||
|
|
||||||
|
[arabic, start=10]
|
||||||
|
. Создать файл `/etc/sysctl.d/97-vtune.conf`:
|
||||||
|
|
||||||
|
[source,text]
|
||||||
|
----
|
||||||
|
kernel.kptr_restrict=0
|
||||||
|
kernel.perf_event_paranoid=0
|
||||||
|
kernel.yama.ptrace_scope=0
|
||||||
|
----
|
||||||
|
|
||||||
|
[arabic, start=11]
|
||||||
|
. Прочитать его: `sysctl -p /etc/sysctl.d/97-vtune.conf`
|
||||||
|
. Создать группу `vtune` и добавить в неё пользователя:
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
groupadd vtune
|
||||||
|
usermod -a -G vtune user
|
||||||
|
----
|
||||||
|
|
||||||
|
[arabic, start=13]
|
||||||
|
. Установить модули ядра для упрощения доступа к отладочной информации:
|
||||||
|
|
||||||
|
[source,sh]
|
||||||
|
----
|
||||||
|
sudo apt-get install dkms build-essential linux-headers-generic
|
||||||
|
sudo dpkg -i /opt/intel/vtune-dkms*deb
|
||||||
|
----
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user