Начало
This commit is contained in:
		
							
								
								
									
										259
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,259 @@
 | 
			
		||||
files/etc/config.yaml
 | 
			
		||||
 | 
			
		||||
# Каталог для результатов сборки проекта
 | 
			
		||||
_build
 | 
			
		||||
build
 | 
			
		||||
 | 
			
		||||
# Каталог для тестирования установки
 | 
			
		||||
_output
 | 
			
		||||
 | 
			
		||||
# Каталог для скачивания необходимых файлов
 | 
			
		||||
_downloads
 | 
			
		||||
 | 
			
		||||
# Debian
 | 
			
		||||
debian/changelog
 | 
			
		||||
debian/compat
 | 
			
		||||
debian/control
 | 
			
		||||
debian/files
 | 
			
		||||
debian/rules
 | 
			
		||||
 | 
			
		||||
# Файлы настроек, редактируемые во время отладки,
 | 
			
		||||
# за исключением шаблонных файлов
 | 
			
		||||
files/etc/*.conf
 | 
			
		||||
!files/etc/*.example.conf
 | 
			
		||||
 | 
			
		||||
# Каталоги, в которые разрешена запись данных во время работы программы
 | 
			
		||||
files/var/*
 | 
			
		||||
files/lib/*
 | 
			
		||||
files/log/*
 | 
			
		||||
 | 
			
		||||
!.gitkeep
 | 
			
		||||
!.gitignore
 | 
			
		||||
 | 
			
		||||
*_export.hpp
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### Общие настройки для C, C++, Fortran, Qt, CMake, Ninja, LaTeX и редакторов
 | 
			
		||||
###
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### Временные файлы текстовых редакторов
 | 
			
		||||
###
 | 
			
		||||
*.bak
 | 
			
		||||
*.gho
 | 
			
		||||
*.tmp
 | 
			
		||||
*.dotdropbak
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### LyX
 | 
			
		||||
###
 | 
			
		||||
*.lyx~
 | 
			
		||||
*.lyx#
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### Vim
 | 
			
		||||
###
 | 
			
		||||
# Swap
 | 
			
		||||
[._]*.s[a-v][a-z]
 | 
			
		||||
!*.svg  # comment out if you don't need vector files
 | 
			
		||||
[._]*.sw[a-p]
 | 
			
		||||
[._]s[a-rt-v][a-z]
 | 
			
		||||
[._]ss[a-gi-z]
 | 
			
		||||
[._]sw[a-p]
 | 
			
		||||
 | 
			
		||||
# Project
 | 
			
		||||
.vimprj
 | 
			
		||||
# Temporary
 | 
			
		||||
.netrwhist
 | 
			
		||||
*~
 | 
			
		||||
# Auto-generated tag files
 | 
			
		||||
tags
 | 
			
		||||
# Persistent undo
 | 
			
		||||
[._]*.un~
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### C++
 | 
			
		||||
###
 | 
			
		||||
 | 
			
		||||
# Prerequisites
 | 
			
		||||
*.d
 | 
			
		||||
 | 
			
		||||
# Compiled Object files
 | 
			
		||||
*.slo
 | 
			
		||||
*.lo
 | 
			
		||||
*.o
 | 
			
		||||
*.obj
 | 
			
		||||
 | 
			
		||||
# Precompiled Headers
 | 
			
		||||
*.gch
 | 
			
		||||
*.pch
 | 
			
		||||
 | 
			
		||||
# Compiled Dynamic libraries
 | 
			
		||||
*.so
 | 
			
		||||
*.so.*
 | 
			
		||||
*.dylib
 | 
			
		||||
*.dll
 | 
			
		||||
 | 
			
		||||
# Fortran module files
 | 
			
		||||
*.mod
 | 
			
		||||
*.smod
 | 
			
		||||
 | 
			
		||||
# Compiled Static libraries
 | 
			
		||||
*.lai
 | 
			
		||||
*.la
 | 
			
		||||
*.a
 | 
			
		||||
*.lib
 | 
			
		||||
 | 
			
		||||
# Executables
 | 
			
		||||
*.exe
 | 
			
		||||
*.out
 | 
			
		||||
*.app
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### CMake
 | 
			
		||||
###
 | 
			
		||||
PreLoad.cmake
 | 
			
		||||
CMakeLists.txt.user*
 | 
			
		||||
CMakeCache.txt
 | 
			
		||||
CMakeFiles
 | 
			
		||||
CMakeScripts
 | 
			
		||||
Testing
 | 
			
		||||
Makefile
 | 
			
		||||
cmake_install.cmake
 | 
			
		||||
install_manifest.txt
 | 
			
		||||
compile_commands.json
 | 
			
		||||
CTestTestfile.cmake
 | 
			
		||||
_deps
 | 
			
		||||
 | 
			
		||||
### CMake Patch ###
 | 
			
		||||
# External projects
 | 
			
		||||
*-prefix/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### Ninja
 | 
			
		||||
###
 | 
			
		||||
.ninja_deps
 | 
			
		||||
.ninja_log
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### GCC coverage testing tool files
 | 
			
		||||
###
 | 
			
		||||
*.gcno
 | 
			
		||||
*.gcda
 | 
			
		||||
*.gcov
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### Qt
 | 
			
		||||
###
 | 
			
		||||
object_script.*.Release
 | 
			
		||||
object_script.*.Debug
 | 
			
		||||
*_plugin_import.cpp
 | 
			
		||||
/.qmake.cache
 | 
			
		||||
/.qmake.stash
 | 
			
		||||
*.pro.user
 | 
			
		||||
*.pro.user.*
 | 
			
		||||
*.qbs.user
 | 
			
		||||
*.qbs.user.*
 | 
			
		||||
*.moc
 | 
			
		||||
moc_*.cpp
 | 
			
		||||
moc_*.h
 | 
			
		||||
qrc_*.cpp
 | 
			
		||||
ui_*.h
 | 
			
		||||
*.qmlc
 | 
			
		||||
*.jsc
 | 
			
		||||
Makefile*
 | 
			
		||||
*build-*
 | 
			
		||||
*.qm
 | 
			
		||||
*.prl
 | 
			
		||||
 | 
			
		||||
# Qt unit tests
 | 
			
		||||
target_wrapper.*
 | 
			
		||||
 | 
			
		||||
# QtCreator
 | 
			
		||||
*.autosave
 | 
			
		||||
 | 
			
		||||
# QtCreator Qml
 | 
			
		||||
*.qmlproject.user
 | 
			
		||||
*.qmlproject.user.*
 | 
			
		||||
 | 
			
		||||
# QtCreator local machine specific files for imported projects
 | 
			
		||||
*creator.user*
 | 
			
		||||
 | 
			
		||||
*_qmlcache.qrc
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### KDevelop4 ###
 | 
			
		||||
*.kdev4
 | 
			
		||||
.kdev4/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### vscode ###
 | 
			
		||||
.vscode/*
 | 
			
		||||
!.vscode/settings.json
 | 
			
		||||
!.vscode/tasks.json
 | 
			
		||||
!.vscode/launch.json
 | 
			
		||||
!.vscode/extensions.json
 | 
			
		||||
*.code-workspace
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Eclipse ###
 | 
			
		||||
.metadata
 | 
			
		||||
.settings/
 | 
			
		||||
.recommenders/
 | 
			
		||||
 | 
			
		||||
# TeXlipse
 | 
			
		||||
.texlipse
 | 
			
		||||
 | 
			
		||||
# PyDev specific (Python IDE for Eclipse)
 | 
			
		||||
*.pydevproject
 | 
			
		||||
 | 
			
		||||
# CDT-specific (C/C++ Development Tooling)
 | 
			
		||||
.cproject
 | 
			
		||||
 | 
			
		||||
# CDT- autotools
 | 
			
		||||
.autotools
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
### Latex
 | 
			
		||||
###
 | 
			
		||||
*.acn
 | 
			
		||||
*.acr
 | 
			
		||||
*.alg
 | 
			
		||||
*.aux
 | 
			
		||||
*.bbl
 | 
			
		||||
*.blg
 | 
			
		||||
*.dvi
 | 
			
		||||
*.fdb_latexmk
 | 
			
		||||
*.fls
 | 
			
		||||
*.glg
 | 
			
		||||
*.glo
 | 
			
		||||
*.gls
 | 
			
		||||
*.idx
 | 
			
		||||
*.ilg
 | 
			
		||||
*.ind
 | 
			
		||||
*.ist
 | 
			
		||||
*.lof
 | 
			
		||||
*.log
 | 
			
		||||
*.lot
 | 
			
		||||
*.maf
 | 
			
		||||
*.mtc
 | 
			
		||||
*.mtc0
 | 
			
		||||
*.nav
 | 
			
		||||
*.nlo
 | 
			
		||||
*.out
 | 
			
		||||
*.pdfsync
 | 
			
		||||
*.ps
 | 
			
		||||
*.snm
 | 
			
		||||
*.synctex.gz
 | 
			
		||||
*.toc
 | 
			
		||||
*.vrb
 | 
			
		||||
*.xdv
 | 
			
		||||
*.xdy
 | 
			
		||||
*.tdo
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
include:
 | 
			
		||||
  - project: 'f1x1t/gitlab-ci'
 | 
			
		||||
    ref: master
 | 
			
		||||
    file: 'scheduled.yml'
 | 
			
		||||
 | 
			
		||||
smolensk15-nightly:
 | 
			
		||||
  extends: .scheduled-smolensk15
 | 
			
		||||
 | 
			
		||||
orel212-nightly:
 | 
			
		||||
  extends: .scheduled-orel212
 | 
			
		||||
 | 
			
		||||
focal-nightly:
 | 
			
		||||
  extends: .scheduled-focal
 | 
			
		||||
 | 
			
		||||
jammy-nightly:
 | 
			
		||||
  extends: .scheduled-jammy
 | 
			
		||||
 | 
			
		||||
elbrus-nightly:
 | 
			
		||||
  extends: .scheduled-elbrus
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										44
									
								
								CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
# Минимальная версия CMake, требуемая для сборки проекта
 | 
			
		||||
cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
 | 
			
		||||
 | 
			
		||||
# Предпочтительно следовать стандартам принятым в указанном диапазоне версий
 | 
			
		||||
cmake_policy(VERSION 3.6..3.7)
 | 
			
		||||
 | 
			
		||||
# Название и версия проекта и используемые языки программирования
 | 
			
		||||
project(myx-example-app-deb
 | 
			
		||||
  VERSION 0.4.0
 | 
			
		||||
  LANGUAGES C CXX
 | 
			
		||||
  DESCRIPTION "Debian packaging example")
 | 
			
		||||
 | 
			
		||||
# Имя и почта автора (требуются для создания пакетов)
 | 
			
		||||
set(${PROJECT_NAME}_AUTHOR_NAME "Andrey Astafyev")
 | 
			
		||||
set(${PROJECT_NAME}_AUTHOR_EMAIL "dev@246060.ru")
 | 
			
		||||
 | 
			
		||||
# Рекомендуемый способ подключения MyxCMake
 | 
			
		||||
include(cmake/myx_setup.cmake)
 | 
			
		||||
# Правила загрузки требуемых файлов
 | 
			
		||||
include(myx_download_content.cmake)
 | 
			
		||||
 | 
			
		||||
# Цель для создания исполняемого файла
 | 
			
		||||
myx_add_executable(${PROJECT_NAME})
 | 
			
		||||
 | 
			
		||||
# Настройка свойств цели
 | 
			
		||||
myx_target_setup(${PROJECT_NAME}
 | 
			
		||||
  CPP
 | 
			
		||||
    ${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/main.cpp
 | 
			
		||||
  LINK_LIBRARIES
 | 
			
		||||
    myx-example-interface-library
 | 
			
		||||
    myx-example-object-library
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Автоматически генерируемый файл с информацией о репозитории
 | 
			
		||||
myx_generate_git_info_header(${PROJECT_NAME} "git_info_p.hpp")
 | 
			
		||||
 | 
			
		||||
# Автоматически генерируемый приватный заголовочный файл
 | 
			
		||||
myx_generate_private_config_header(${PROJECT_NAME} "config_p.hpp")
 | 
			
		||||
 | 
			
		||||
# Форматирование исходных текстов с помощью uncrustify
 | 
			
		||||
myx_uncrustify(${PROJECT_NAME})
 | 
			
		||||
 | 
			
		||||
# Цель для сборки пакета для Debian
 | 
			
		||||
include(cmake/package/deb.cmake)
 | 
			
		||||
							
								
								
									
										2122
									
								
								cmake/myx/MyxCMakeConfig.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2122
									
								
								cmake/myx/MyxCMakeConfig.cmake
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										9
									
								
								cmake/myx/MyxCMakeConfigVersion.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								cmake/myx/MyxCMakeConfigVersion.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
set(MYX_CMAKE_PACKAGE_VERSION "2.4.17")
 | 
			
		||||
if(MYX_CMAKE_PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
 | 
			
		||||
  set(PACKAGE_VERSION_COMPATIBLE FALSE)
 | 
			
		||||
else()
 | 
			
		||||
  set(PACKAGE_VERSION_COMPATIBLE TRUE)
 | 
			
		||||
  if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
 | 
			
		||||
    set(PACKAGE_VERSION_EXACT TRUE)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
							
								
								
									
										28
									
								
								cmake/myx/backports/FetchContent/CMakeLists.cmake.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								cmake/myx/backports/FetchContent/CMakeLists.cmake.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 | 
			
		||||
# file Copyright.txt or https://cmake.org/licensing for details.
 | 
			
		||||
 | 
			
		||||
cmake_minimum_required(VERSION ${CMAKE_VERSION})
 | 
			
		||||
 | 
			
		||||
# We name the project and the target for the ExternalProject_Add() call
 | 
			
		||||
# to something that will highlight to the user what we are working on if
 | 
			
		||||
# something goes wrong and an error message is produced.
 | 
			
		||||
 | 
			
		||||
project(${contentName}-populate NONE)
 | 
			
		||||
 | 
			
		||||
@__FETCHCONTENT_CACHED_INFO@
 | 
			
		||||
 | 
			
		||||
include(ExternalProject)
 | 
			
		||||
ExternalProject_Add(${contentName}-populate
 | 
			
		||||
                    ${ARG_EXTRA}
 | 
			
		||||
                    SOURCE_DIR          "${ARG_SOURCE_DIR}"
 | 
			
		||||
                    BINARY_DIR          "${ARG_BINARY_DIR}"
 | 
			
		||||
                    CONFIGURE_COMMAND   ""
 | 
			
		||||
                    BUILD_COMMAND       ""
 | 
			
		||||
                    INSTALL_COMMAND     ""
 | 
			
		||||
                    TEST_COMMAND        ""
 | 
			
		||||
                    USES_TERMINAL_DOWNLOAD  YES
 | 
			
		||||
                    USES_TERMINAL_UPDATE    YES
 | 
			
		||||
                    USES_TERMINAL_PATCH     YES
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@__FETCHCONTENT_COPY_FILE@
 | 
			
		||||
							
								
								
									
										95
									
								
								cmake/myx/lib/DownloadContent.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								cmake/myx/lib/DownloadContent.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
#[=======================================================================[.rst:
 | 
			
		||||
myx_download_content
 | 
			
		||||
-----------------------
 | 
			
		||||
 | 
			
		||||
Функция для загрузки дополнительных репозиториев::
 | 
			
		||||
 | 
			
		||||
  myx_download_content(NAME
 | 
			
		||||
    [ DOWNLOAD_DIR dir ] |
 | 
			
		||||
    [ GIT_REPOSITORY url ] |
 | 
			
		||||
    [ GIT_TAG tag ] |
 | 
			
		||||
    [ AUTOFETCH ] | [ AUTOPULL ] )
 | 
			
		||||
 | 
			
		||||
Обязательный параметр: `NAME` - имя целевого каталога.
 | 
			
		||||
Параметр `DOWNLOAD_DIR` содержит имя каталога, в который будет загружаться
 | 
			
		||||
содержимое (по умолчанию `_downloads`).
 | 
			
		||||
Параметр `GIT_REPOSITORY` содержит адрес внешнего проекта, который нужно
 | 
			
		||||
загрузить с помощью git.
 | 
			
		||||
Параметр `GIT_TAG` содержит используемые метку, идентификатор коммита или
 | 
			
		||||
ветку в загружаемом репозитории.
 | 
			
		||||
Если указана опция `AUTOFETCH`, то на этапе конфигурирования для загруженного
 | 
			
		||||
репозитория будут скачиваться изменения.
 | 
			
		||||
Если указана опция `AUTOPULL`, то на этапе конфигурирования из загруженного
 | 
			
		||||
репозитория будет изменяться рабочий каталог.
 | 
			
		||||
 | 
			
		||||
#]=======================================================================]
 | 
			
		||||
 | 
			
		||||
find_package(Git QUIET)
 | 
			
		||||
 | 
			
		||||
option(ENABLE_DOWNLOAD_CONTENT "Enable download content" ON)
 | 
			
		||||
 | 
			
		||||
if(CMAKE_SCRIPT_MODE_FILE)
 | 
			
		||||
  include(${CMAKE_CURRENT_LIST_DIR}/ProjectIsTopLevel.cmake)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
function(myx_download_content NAME)
 | 
			
		||||
  set(options AUTOFETCH AUTOPULL)
 | 
			
		||||
  set(oneValueArgs)
 | 
			
		||||
  set(multiValueArgs DOWNLOAD_DIR GIT_REPOSITORY GIT_TAG)
 | 
			
		||||
  cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 | 
			
		||||
 | 
			
		||||
  if(NOT CMAKE_SCRIPT_MODE_FILE)
 | 
			
		||||
    if(TARGET myx-download-${NAME})
 | 
			
		||||
      return()
 | 
			
		||||
    else()
 | 
			
		||||
      add_custom_target(myx-download-${NAME})
 | 
			
		||||
    endif()
 | 
			
		||||
    if(NOT TARGET myx-download-content)
 | 
			
		||||
      add_custom_target(myx-download-content)
 | 
			
		||||
    endif()
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  if(NOT PROJECT_IS_TOP_LEVEL)
 | 
			
		||||
    return()
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  if(NOT ARG_DOWNLOAD_DIR)
 | 
			
		||||
    set(ARG_DOWNLOAD_DIR "_downloads")
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  if(CMAKE_SCRIPT_MODE_FILE)
 | 
			
		||||
    set(PROJECT_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
 | 
			
		||||
  endif()
 | 
			
		||||
  set(ARG_DOWNLOAD_DIR ${PROJECT_SOURCE_DIR}/${ARG_DOWNLOAD_DIR})
 | 
			
		||||
 | 
			
		||||
  if(NOT IS_DIRECTORY ${ARG_DOWNLOAD_DIR})
 | 
			
		||||
    execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${ARG_DOWNLOAD_DIR})
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  set(WORK_DIR "${ARG_DOWNLOAD_DIR}/${NAME}")
 | 
			
		||||
  if(ENABLE_DOWNLOAD_CONTENT AND GIT_EXECUTABLE AND ARG_GIT_REPOSITORY)
 | 
			
		||||
    if(NOT IS_DIRECTORY ${WORK_DIR})
 | 
			
		||||
      execute_process(COMMAND ${GIT_EXECUTABLE} clone ${ARG_GIT_REPOSITORY} ${NAME}
 | 
			
		||||
                      WORKING_DIRECTORY ${ARG_DOWNLOAD_DIR})
 | 
			
		||||
    else()
 | 
			
		||||
      if(ARG_AUTOFETCH)
 | 
			
		||||
        execute_process(COMMAND ${GIT_EXECUTABLE} fetch
 | 
			
		||||
                        WORKING_DIRECTORY ${WORK_DIR})
 | 
			
		||||
      endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    if(ARG_GIT_TAG)
 | 
			
		||||
      execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${ARG_GIT_TAG}
 | 
			
		||||
                      WORKING_DIRECTORY ${WORK_DIR})
 | 
			
		||||
    else()
 | 
			
		||||
      if(ARG_AUTOPULL)
 | 
			
		||||
        execute_process(COMMAND ${GIT_EXECUTABLE} pull
 | 
			
		||||
                        WORKING_DIRECTORY ${WORK_DIR})
 | 
			
		||||
      endif()
 | 
			
		||||
    endif()
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  if(NOT CMAKE_SCRIPT_MODE_FILE AND EXISTS "${WORK_DIR}/CMakeLists.txt")
 | 
			
		||||
    add_subdirectory(${WORK_DIR} EXCLUDE_FROM_ALL)
 | 
			
		||||
  endif()
 | 
			
		||||
endfunction()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								cmake/myx/lib/ProjectIsTopLevel.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								cmake/myx/lib/ProjectIsTopLevel.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
include_guard(GLOBAL)
 | 
			
		||||
 | 
			
		||||
# Установка переменной, определяющей находится ли текущий
 | 
			
		||||
# проект на верхнем уровне.
 | 
			
		||||
# (Файл перемещён из каталога backports в lib для myx_download_content)
 | 
			
		||||
#
 | 
			
		||||
if(${CMAKE_VERSION} VERSION_LESS 3.21)
 | 
			
		||||
  get_property(__parent_directory DIRECTORY PROPERTY PARENT_DIRECTORY)
 | 
			
		||||
  if(NOT __parent_directory)
 | 
			
		||||
    set(PROJECT_IS_TOP_LEVEL TRUE)
 | 
			
		||||
  else()
 | 
			
		||||
    set(PROJECT_IS_TOP_LEVEL FALSE)
 | 
			
		||||
  endif()
 | 
			
		||||
  unset(__parent_directory)
 | 
			
		||||
endif()
 | 
			
		||||
							
								
								
									
										31
									
								
								cmake/myx/lib/doc/Doxyfile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								cmake/myx/lib/doc/Doxyfile.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
PROJECT_NAME           = @DOXYGEN_PROJECT_TITLE@
 | 
			
		||||
OUTPUT_DIRECTORY       = @DOXYGEN_OUTPUT_DIRECTORY@
 | 
			
		||||
OUTPUT_LANGUAGE        = @ARG_LANGUAGE@
 | 
			
		||||
STRIP_FROM_PATH        = @PROJECT_SOURCE_DIR@
 | 
			
		||||
STRIP_FROM_INC_PATH    = @PROJECT_SOURCE_DIR@
 | 
			
		||||
 | 
			
		||||
EXTRACT_ALL            = YES
 | 
			
		||||
EXTRACT_PRIVATE        = YES
 | 
			
		||||
EXTRACT_STATIC         = YES
 | 
			
		||||
EXTRACT_LOCAL_METHODS  = YES
 | 
			
		||||
 | 
			
		||||
INPUT                  = "@PROJECT_SOURCE_DIR@/doc/doxygen" "@PROJECT_SOURCE_DIR@/include" "@PROJECT_SOURCE_DIR@/src"
 | 
			
		||||
RECURSIVE              = YES
 | 
			
		||||
 | 
			
		||||
CLANG_ASSISTED_PARSING = YES
 | 
			
		||||
CLANG_DATABASE_PATH    = @CMAKE_BINARY_DIR@
 | 
			
		||||
 | 
			
		||||
GENERATE_HTML          = @ARG_HTML@
 | 
			
		||||
GENERATE_TREEVIEW      = YES
 | 
			
		||||
 | 
			
		||||
GENERATE_LATEX         = @ARG_LATEX@
 | 
			
		||||
LATEX_CMD_NAME         = xelatex
 | 
			
		||||
COMPACT_LATEX          = YES
 | 
			
		||||
 | 
			
		||||
GENERATE_XML           = @ARG_XML@
 | 
			
		||||
 | 
			
		||||
UML_LOOK               = YES
 | 
			
		||||
TEMPLATE_RELATIONS     = YES
 | 
			
		||||
CALL_GRAPH             = YES
 | 
			
		||||
CALLER_GRAPH           = YES
 | 
			
		||||
INTERACTIVE_SVG        = YES
 | 
			
		||||
							
								
								
									
										32
									
								
								cmake/myx/lib/generators/GitInfo.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								cmake/myx/lib/generators/GitInfo.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
cmake_policy(PUSH)
 | 
			
		||||
cmake_policy(SET CMP0053 NEW) # IN_LIST operator
 | 
			
		||||
 | 
			
		||||
set(ARG_PREFIX "${PREFIX}")
 | 
			
		||||
set(GIT_REV "N/A")
 | 
			
		||||
set(GIT_DIFF "")
 | 
			
		||||
set(GIT_TAG "N/A")
 | 
			
		||||
set(GIT_BRANCH "N/A")
 | 
			
		||||
 | 
			
		||||
find_package(Git QUIET)
 | 
			
		||||
 | 
			
		||||
if(GIT_EXECUTABLE)
 | 
			
		||||
  execute_process(COMMAND ${GIT_EXECUTABLE} log --pretty=format:'%h' -n 1 OUTPUT_VARIABLE GIT_REV ERROR_QUIET)
 | 
			
		||||
 | 
			
		||||
  # Check whether we got any revision (which isn't always the case,
 | 
			
		||||
  # e.g. when someone downloaded a zip file from Github instead of a checkout)
 | 
			
		||||
  if(NOT "${GIT_REV}" STREQUAL "")
 | 
			
		||||
    execute_process(COMMAND bash -c "${GIT_EXECUTABLE} diff --quiet --exit-code || echo +" OUTPUT_VARIABLE GIT_DIFF)
 | 
			
		||||
    execute_process(COMMAND ${GIT_EXECUTABLE} describe --exact-match --tags OUTPUT_VARIABLE GIT_TAG ERROR_QUIET)
 | 
			
		||||
    execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD OUTPUT_VARIABLE GIT_BRANCH)
 | 
			
		||||
 | 
			
		||||
    string(STRIP "${GIT_REV}" GIT_REV)
 | 
			
		||||
    string(SUBSTRING "${GIT_REV}" 1 7 GIT_REV)
 | 
			
		||||
    string(STRIP "${GIT_DIFF}" GIT_DIFF)
 | 
			
		||||
    string(STRIP "${GIT_TAG}" GIT_TAG)
 | 
			
		||||
    string(STRIP "${GIT_BRANCH}" GIT_BRANCH)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
configure_file("GitInfo.hpp.in" "${GIT_INFO_FILE}")
 | 
			
		||||
 | 
			
		||||
cmake_policy(POP)
 | 
			
		||||
							
								
								
									
										26
									
								
								cmake/myx/lib/generators/GitInfo.hpp.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								cmake/myx/lib/generators/GitInfo.hpp.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
// -*- C++ -*-
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#if defined (@PREFIX@GIT_REV)
 | 
			
		||||
#error "Duplicate definition of macros @PREFIX@GIT_REV"
 | 
			
		||||
#else
 | 
			
		||||
#define @PREFIX@GIT_REV "@GIT_REV@"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (@PREFIX@GIT_DIFF)
 | 
			
		||||
#error "Duplicate definition of macros @PREFIX@GIT_DIFF"
 | 
			
		||||
#else
 | 
			
		||||
#define @PREFIX@GIT_DIFF "@GIT_DIFF@"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (@PREFIX@GIT_BRANCH)
 | 
			
		||||
#error "Duplicate definition of macros @PREFIX@GIT_BRANCH"
 | 
			
		||||
#else
 | 
			
		||||
#define @PREFIX@GIT_BRANCH "@GIT_BRANCH@"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined (@PREFIX@GIT_TAG)
 | 
			
		||||
#error "Duplicate definition of macros @PREFIX@GIT_TAG"
 | 
			
		||||
#else
 | 
			
		||||
#define @PREFIX@GIT_TAG "@GIT_TAG@"
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										56
									
								
								cmake/myx/lib/generators/GitInfoHeader.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								cmake/myx/lib/generators/GitInfoHeader.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
#[=======================================================================[.rst:
 | 
			
		||||
myx_generate_git_info_header
 | 
			
		||||
----------------------------------
 | 
			
		||||
 | 
			
		||||
Вспомогательная функция для автоматической генерации заголовочного
 | 
			
		||||
файла, содержащего информацию о текущем состоянии репозитория git::
 | 
			
		||||
 | 
			
		||||
    myx_generate_git_info_header(TARGET_NAME BASE_FILENAME
 | 
			
		||||
      [ PREFIX prefix ] )
 | 
			
		||||
 | 
			
		||||
    Обязательные параметры: `TARGET_NAME` - имя цели, с которой связан
 | 
			
		||||
заголовочный файл, и `BASE_FILENAME` - имя генерируемого заголовочного
 | 
			
		||||
файла. Дополнительный аргумент `PREFIX` добавляет префикс к генерируемым
 | 
			
		||||
именам переменных.
 | 
			
		||||
 | 
			
		||||
#]=======================================================================]
 | 
			
		||||
 | 
			
		||||
include_guard(GLOBAL)
 | 
			
		||||
 | 
			
		||||
if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
 | 
			
		||||
  set(MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT "${CMAKE_CURRENT_LIST_DIR}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
function(myx_generate_git_info_header TARGET_NAME BASE_FILENAME)
 | 
			
		||||
  if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
 | 
			
		||||
    set(CMAKE_CURRENT_FUNCTION_LIST_DIR ${MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT})
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  set(options)
 | 
			
		||||
  set(oneValueArgs PREFIX)
 | 
			
		||||
  set(multiValueArgs)
 | 
			
		||||
  cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
 | 
			
		||||
 | 
			
		||||
  set(__filename "${PROJECT_BINARY_DIR}/include/${BASE_FILENAME}")
 | 
			
		||||
  file(APPEND ${__filename} "")
 | 
			
		||||
 | 
			
		||||
  set(__prefix "")
 | 
			
		||||
  if(ARG_PREFIX)
 | 
			
		||||
    string(APPEND ARG_PREFIX "_")
 | 
			
		||||
    string(REPLACE "-" "_" __prefix ${ARG_PREFIX})
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
# cmake-format: off
 | 
			
		||||
  if(NOT TARGET ${TARGET_NAME}-git-info-header)
 | 
			
		||||
    add_custom_target(${TARGET_NAME}-git-info-header ALL
 | 
			
		||||
      ${CMAKE_COMMAND} -DGIT_INFO_FILE=${__filename} -DPREFIX=${__prefix}
 | 
			
		||||
                       -P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/GitInfo.cmake
 | 
			
		||||
      BYPRODUCTS ${__filename}
 | 
			
		||||
      WORKING_DIRECTORY ${CMAKE_CURRENT_FUNCTION_LIST_DIR})
 | 
			
		||||
  endif()
 | 
			
		||||
# cmake-format: on
 | 
			
		||||
 | 
			
		||||
  set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${__filename})
 | 
			
		||||
  target_sources(${TARGET_NAME} PRIVATE ${__filename})
 | 
			
		||||
  add_dependencies(${TARGET_NAME} ${TARGET_NAME}-git-info-header)
 | 
			
		||||
endfunction()
 | 
			
		||||
							
								
								
									
										12
									
								
								cmake/myx/lib/generators/PrivateConfig.hpp.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								cmake/myx/lib/generators/PrivateConfig.hpp.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// -*- C++ -*-
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define PROJECT_VERSION_STR "@PROJECT_VERSION@"
 | 
			
		||||
#define PROJECT_VERSION_INT @PROJECT_VERSION_INT@
 | 
			
		||||
 | 
			
		||||
#cmakedefine PROJECT_NAME "@PROJECT_NAME@"
 | 
			
		||||
#cmakedefine AUTHOR_NAME "@AUTHOR_NAME@"
 | 
			
		||||
#cmakedefine AUTHOR_EMAIL "@AUTHOR_EMAIL@"
 | 
			
		||||
#cmakedefine DESCRIPTION "@PROJECT_DESCRIPTION@"
 | 
			
		||||
#cmakedefine BUILD_TYPE "@CMAKE_BUILD_TYPE@"
 | 
			
		||||
#cmakedefine BUILD_DATE "@MYX_TODAY@"
 | 
			
		||||
							
								
								
									
										35
									
								
								cmake/myx/lib/generators/PrivateConfigHeader.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								cmake/myx/lib/generators/PrivateConfigHeader.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
#[=======================================================================[.rst:
 | 
			
		||||
myx_generate_private_config_header
 | 
			
		||||
----------------------------------
 | 
			
		||||
 | 
			
		||||
Вспомогательная функция для автоматической генерации заголовочного
 | 
			
		||||
файла, содержащего информацию о проекте::
 | 
			
		||||
 | 
			
		||||
    myx_generate_private_config_header(TARGET_NAME BASE_FILENAME)
 | 
			
		||||
 | 
			
		||||
    Обязательные параметры: `TARGET_NAME` - имя цели, с которой связан
 | 
			
		||||
заголовочный файл, и `BASE_FILENAME` - имя генерируемого заголовочного файла.
 | 
			
		||||
 | 
			
		||||
#]=======================================================================]
 | 
			
		||||
 | 
			
		||||
include_guard(GLOBAL)
 | 
			
		||||
 | 
			
		||||
if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
 | 
			
		||||
  set(MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT "${CMAKE_CURRENT_LIST_DIR}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
function(myx_generate_private_config_header TARGET_NAME BASE_FILENAME)
 | 
			
		||||
  if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
 | 
			
		||||
    set(CMAKE_CURRENT_FUNCTION_LIST_DIR ${MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT})
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  set(BUILD_DATE ${MYX_TODAY})
 | 
			
		||||
  myx_project_version_int()
 | 
			
		||||
  get_property(PROJECT_VERSION_INT GLOBAL PROPERTY PROJECT_VERSION_INT)
 | 
			
		||||
 | 
			
		||||
  set(__filename "${PROJECT_BINARY_DIR}/include/${BASE_FILENAME}")
 | 
			
		||||
  configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/PrivateConfig.hpp.in" ${__filename})
 | 
			
		||||
 | 
			
		||||
  set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${__filename})
 | 
			
		||||
  target_sources(${TARGET_NAME} PRIVATE ${__filename})
 | 
			
		||||
endfunction()
 | 
			
		||||
							
								
								
									
										5
									
								
								cmake/myx/lib/library-config.cmake.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cmake/myx/lib/library-config.cmake.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
@PACKAGE_INIT@
 | 
			
		||||
 | 
			
		||||
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
 | 
			
		||||
 | 
			
		||||
check_required_components("@PROJECT_NAME@")
 | 
			
		||||
							
								
								
									
										5
									
								
								cmake/myx/lib/uncrustify/classheader.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cmake/myx/lib/uncrustify/classheader.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 *  @class   $(fclass)
 | 
			
		||||
 *  @brief   TODO
 | 
			
		||||
 *  @details TODO
 | 
			
		||||
 */
 | 
			
		||||
							
								
								
									
										1
									
								
								cmake/myx/lib/uncrustify/filefooter.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cmake/myx/lib/uncrustify/filefooter.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
// EOF $(filename)
 | 
			
		||||
							
								
								
									
										6
									
								
								cmake/myx/lib/uncrustify/fileheader.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								cmake/myx/lib/uncrustify/fileheader.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
// -*- C++ -*-
 | 
			
		||||
/**
 | 
			
		||||
 *  @file    $(filename)
 | 
			
		||||
 *  @brief   TODO
 | 
			
		||||
 *  @details TODO
 | 
			
		||||
 */
 | 
			
		||||
							
								
								
									
										5
									
								
								cmake/myx/lib/uncrustify/funcheader.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								cmake/myx/lib/uncrustify/funcheader.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
/**
 | 
			
		||||
 *  @fn $(fclass)::$(function)
 | 
			
		||||
 *  $(javaparam)
 | 
			
		||||
 *  @details TODO
 | 
			
		||||
 */
 | 
			
		||||
							
								
								
									
										31
									
								
								cmake/myx/lib/uninstall.cmake.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								cmake/myx/lib/uninstall.cmake.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
 | 
			
		||||
  message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
 | 
			
		||||
endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
 | 
			
		||||
 | 
			
		||||
file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
 | 
			
		||||
string(REGEX REPLACE "\n" ";" files "${files}")
 | 
			
		||||
foreach(file ${files})
 | 
			
		||||
  message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
 | 
			
		||||
  if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
 | 
			
		||||
    exec_program(
 | 
			
		||||
      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
 | 
			
		||||
      OUTPUT_VARIABLE rm_out
 | 
			
		||||
      RETURN_VALUE rm_retval
 | 
			
		||||
      )
 | 
			
		||||
    if(NOT "${rm_retval}" STREQUAL 0)
 | 
			
		||||
      message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
 | 
			
		||||
    endif(NOT "${rm_retval}" STREQUAL 0)
 | 
			
		||||
  else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
 | 
			
		||||
    message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
 | 
			
		||||
  endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
 | 
			
		||||
endforeach(file)
 | 
			
		||||
 | 
			
		||||
# Удаление пустых каталогов
 | 
			
		||||
foreach(_file ${files})
 | 
			
		||||
  set(_res 0)
 | 
			
		||||
  while(_res EQUAL 0)
 | 
			
		||||
    get_filename_component(_file ${_file} DIRECTORY)
 | 
			
		||||
    execute_process(COMMAND rmdir ${_file} RESULT_VARIABLE _res OUTPUT_QUIET ERROR_QUIET)
 | 
			
		||||
  endwhile()
 | 
			
		||||
endforeach()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										43
									
								
								cmake/myx_setup.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								cmake/myx_setup.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
#[=======================================================================[.rst:
 | 
			
		||||
Подключение дополнительных функций для CMake
 | 
			
		||||
 | 
			
		||||
По умолчанию предполагается использование версии MyxCMake,
 | 
			
		||||
файлы которой находятся в каталоге `cmake/myx` текущего проекта.
 | 
			
		||||
 | 
			
		||||
Для удобства разработки библиотеки MyxCMake можно указать путь
 | 
			
		||||
к её репозиторию с помощью переменной проекта CMake `MYX_CMAKE_DIR`
 | 
			
		||||
или переменной окружения `MYX_CMAKE_DIR`.
 | 
			
		||||
 | 
			
		||||
Если определена переменная `MYX_CMAKE_USE_SYSTEM`, то выполняется
 | 
			
		||||
поиск версии в каталогах перечисленных в переменной `CMAKE_MODULES_DIR`.
 | 
			
		||||
 | 
			
		||||
Кроме того выполняется попытка поиска (MyxxCMake)[../../../../myxx] --
 | 
			
		||||
расширения для библиотеки, позволяющего в режиме разработки программного
 | 
			
		||||
проекта использовать дополнительные инструменты для его сопровождения.
 | 
			
		||||
#]=======================================================================]
 | 
			
		||||
 | 
			
		||||
if(ENV{MYX_CMAKE_DIR})
 | 
			
		||||
  set(MYX_CMAKE_DIR $ENV{MYX_CMAKE_DIR})
 | 
			
		||||
endif()
 | 
			
		||||
if(MYX_CMAKE_DIR)
 | 
			
		||||
  find_package(MyxCMake 2.4.17 REQUIRED CONFIG PATHS ${MYX_CMAKE_DIR} NO_DEFAULT_PATH)
 | 
			
		||||
  myx_message_notice("== MyxCMake directory: ${MyxCMake_CONFIG} ==")
 | 
			
		||||
else()
 | 
			
		||||
  if(MYX_CMAKE_USE_SYSTEM)
 | 
			
		||||
    find_package(MyxCMake 2.4.17 REQUIRED)
 | 
			
		||||
    myx_message_notice("== MyxCMake directory: ${MyxCMake_CONFIG} ==")
 | 
			
		||||
  else()
 | 
			
		||||
    include(${PROJECT_SOURCE_DIR}/cmake/myx/MyxCMakeConfig.cmake)
 | 
			
		||||
    myx_message_notice("== MyxCMake directory: ${PROJECT_SOURCE_DIR}/cmake/myx ==")
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(ENV{MYXX_CMAKE_DIR})
 | 
			
		||||
  set(MYXX_CMAKE_DIR $ENV{MYXX_CMAKE_DIR})
 | 
			
		||||
endif()
 | 
			
		||||
if(MYXX_CMAKE_DIR)
 | 
			
		||||
  find_package(MyxxCMake CONFIG PATHS ${MYXX_CMAKE_DIR} NO_DEFAULT_PATH)
 | 
			
		||||
else()
 | 
			
		||||
  find_package(MyxxCMake CONFIG PATHS "$ENV{XDG_DATA_DIR}/cmake" QUIET)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								cmake/package/deb.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								cmake/package/deb.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
find_program(LSB_RELEASE_EXEC lsb_release)
 | 
			
		||||
find_program(DPKG_BUILDPACKAGE dpkg-buildpackage)
 | 
			
		||||
 | 
			
		||||
if (LSB_RELEASE_EXEC AND DPKG_BUILDPACKAGE)
 | 
			
		||||
  execute_process(COMMAND env LC_ALL=C date "+%a, %-d %b %Y %H:%M:%S %z"
 | 
			
		||||
    OUTPUT_VARIABLE DEBIAN_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
			
		||||
  execute_process(COMMAND /bin/sh "-c" "${LSB_RELEASE_EXEC} -cs"
 | 
			
		||||
    OUTPUT_VARIABLE DEBIAN_CODENAME OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
			
		||||
  set(DEBIAN_RUNTIME_DEPENDS_PLACEHOLDER
 | 
			
		||||
    "\${shlibs:Depends},\${misc:Depends},\${misc:Pre-Depends}")
 | 
			
		||||
 | 
			
		||||
  if(NOT CMAKE_INSTALL_PREFIX)
 | 
			
		||||
    set(CMAKE_INSTALL_PREFIX "/usr")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(NOT ENABLE_MODEL)
 | 
			
		||||
    set(ENABLE_MODEL ON)
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  configure_file(${CMAKE_SOURCE_DIR}/debian/control.in
 | 
			
		||||
                 ${CMAKE_SOURCE_DIR}/debian/control)
 | 
			
		||||
  configure_file(${CMAKE_SOURCE_DIR}/debian/changelog.in
 | 
			
		||||
                 ${CMAKE_SOURCE_DIR}/debian/changelog)
 | 
			
		||||
  configure_file(${CMAKE_SOURCE_DIR}/debian/rules.in
 | 
			
		||||
                 ${CMAKE_SOURCE_DIR}/debian/rules @ONLY)
 | 
			
		||||
  file(WRITE ${CMAKE_SOURCE_DIR}/debian/compat "10")
 | 
			
		||||
 | 
			
		||||
  if(NOT TARGET deb)
 | 
			
		||||
    add_custom_target(deb
 | 
			
		||||
      COMMENT "Build deb package"
 | 
			
		||||
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 | 
			
		||||
      COMMAND ${DPKG_BUILDPACKAGE} -F -uc -us -ui)
 | 
			
		||||
  endif()
 | 
			
		||||
  if(NOT TARGET deb-bin)
 | 
			
		||||
    add_custom_target(deb-bin
 | 
			
		||||
      COMMENT "Build deb package (only binary)"
 | 
			
		||||
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 | 
			
		||||
      COMMAND ${DPKG_BUILDPACKAGE} -b -uc -us -ui)
 | 
			
		||||
  endif()
 | 
			
		||||
  if(NOT TARGET deb-src)
 | 
			
		||||
    add_custom_target(deb-src
 | 
			
		||||
      COMMENT "Build deb package (only source)"
 | 
			
		||||
      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 | 
			
		||||
      COMMAND ${DPKG_BUILDPACKAGE} -S -uc -us -ui)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
							
								
								
									
										6
									
								
								debian/changelog.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								debian/changelog.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
${PROJECT_NAME} (${PROJECT_VERSION}) ${DEBIAN_CODENAME}; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Version ${PROJECT_VERSION}
 | 
			
		||||
 | 
			
		||||
 -- ${${PROJECT_NAME}_AUTHOR_NAME} <${${PROJECT_NAME}_AUTHOR_EMAIL}>  ${DEBIAN_DATE}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
Source: ${PROJECT_NAME}
 | 
			
		||||
Section: misc
 | 
			
		||||
Priority: optional
 | 
			
		||||
Maintainer: ${${PROJECT_NAME}_AUTHOR_NAME} <${${PROJECT_NAME}_AUTHOR_EMAIL}>
 | 
			
		||||
Build-Depends: debhelper (>= 9), cmake,
 | 
			
		||||
               ${DEBIAN_BUILD_DEPENDS_PACKAGES},
 | 
			
		||||
Standards-Version: 4.6.1
 | 
			
		||||
 | 
			
		||||
Package: ${PROJECT_NAME}
 | 
			
		||||
Architecture: any
 | 
			
		||||
Depends: ${DEBIAN_RUNTIME_DEPENDS_PLACEHOLDER},
 | 
			
		||||
         ${DEBIAN_RUNTIME_DEPENDS_PACKAGES},
 | 
			
		||||
Description: ${CMAKE_PROJECT_DESCRIPTION}
 | 
			
		||||
 ${CMAKE_PROJECT_DESCRIPTION}
 | 
			
		||||
 .
 | 
			
		||||
 This is a build for ${CMAKE_LIBRARY_ARCHITECTURE}
 | 
			
		||||
							
								
								
									
										22
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
#!/usr/bin/make -f
 | 
			
		||||
 | 
			
		||||
CMAKE_OPTS:= \
 | 
			
		||||
	-DENABLE_MODEL=@ENABLE_MODEL@ \
 | 
			
		||||
	-DCMAKE_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@ \
 | 
			
		||||
	-DCMAKE_INSTALL_SYSCONFDIR=etc \
 | 
			
		||||
	-DCMAKE_INSTALL_LIBDIR=lib \
 | 
			
		||||
	-DCMAKE_INSTALL_DATAROOTDIR=share \
 | 
			
		||||
	-DCMAKE_BUILD_TYPE=Release
 | 
			
		||||
 | 
			
		||||
%:
 | 
			
		||||
	dh $@ --buildsystem=cmake -builddirectory=build --parallel
 | 
			
		||||
 | 
			
		||||
override_dh_auto_configure:
 | 
			
		||||
	dh_auto_configure -- $(CMAKE_OPTS)
 | 
			
		||||
 | 
			
		||||
override_dh_auto_test:
 | 
			
		||||
	true
 | 
			
		||||
 | 
			
		||||
override_dh_strip:
 | 
			
		||||
	dh_strip --no-automatic-dbgsym
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								debian/source/format
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								debian/source/format
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
3.0 (native)
 | 
			
		||||
							
								
								
									
										6
									
								
								debian/source/options
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								debian/source/options
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
tar-ignore = ".git"
 | 
			
		||||
tar-ignore = "build"
 | 
			
		||||
 | 
			
		||||
compression = "xz"
 | 
			
		||||
compression-level = 9
 | 
			
		||||
extend-diff-ignore = "(^l10n\/.*ts)$"
 | 
			
		||||
							
								
								
									
										0
									
								
								files/etc/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								files/etc/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								files/log/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								files/log/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								files/share/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								files/share/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								files/var/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								files/var/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										2
									
								
								myx_add_subdirectories.example.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								myx_add_subdirectories.example.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
add_subdirectory(../myx-example-interface-library ${CMAKE_BINARY_DIR}/myx-example-interface-library EXCLUDE_FROM_ALL)
 | 
			
		||||
add_subdirectory(../myx-example-object-library    ${CMAKE_BINARY_DIR}/myx-example-object-library EXCLUDE_FROM_ALL)
 | 
			
		||||
							
								
								
									
										14
									
								
								myx_download_content.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								myx_download_content.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
# Подключение файла с функцией для загрузки содержимого
 | 
			
		||||
# командой cmake в режиме запуска скриптов. Пример команды:
 | 
			
		||||
#
 | 
			
		||||
#   cmake -P myx_download_content.cmake
 | 
			
		||||
#
 | 
			
		||||
if(CMAKE_SCRIPT_MODE_FILE)
 | 
			
		||||
  include("cmake/myx/lib/DownloadContent.cmake")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
myx_download_content(myx-example-interface-library
 | 
			
		||||
  GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-interface-library)
 | 
			
		||||
myx_download_content(myx-example-object-library
 | 
			
		||||
  GIT_REPOSITORY git@gitlab.2:myx/examples/myx-example-object-library)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								src/myx-example-app-deb/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/myx-example-app-deb/CMakeLists.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# Название основной цели и имени программы в текущем каталоге
 | 
			
		||||
project(myx-cmake-example-app-ext)
 | 
			
		||||
 | 
			
		||||
# Список файлов исходных текстов
 | 
			
		||||
set(CPP ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
 | 
			
		||||
 | 
			
		||||
# Функция для создания цели, результатом которой будет сборка приложения
 | 
			
		||||
add_executable(${PROJECT_NAME} ${CPP})
 | 
			
		||||
myx_cmake_common_target_properties(${PROJECT_NAME})
 | 
			
		||||
 | 
			
		||||
# Зависимость от библиотеки из внешнего проекта
 | 
			
		||||
add_dependencies(${PROJECT_NAME} extlib)
 | 
			
		||||
 | 
			
		||||
# Компоновка с библиотекой из внешнего проекта
 | 
			
		||||
target_link_libraries(${PROJECT_NAME} myx-cmake-example-library)
 | 
			
		||||
							
								
								
									
										18
									
								
								src/myx-example-app-deb/main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/myx-example-app-deb/main.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
#include "config_p.hpp"
 | 
			
		||||
#include "git_info_p.hpp"
 | 
			
		||||
 | 
			
		||||
#include <myx-example-interface-library/sum.hpp>
 | 
			
		||||
#include <myx-example-object-library/init.hpp>
 | 
			
		||||
 | 
			
		||||
#include <iostream>
 | 
			
		||||
 | 
			
		||||
int main( int argc, char* argv[] )
 | 
			
		||||
{
 | 
			
		||||
	auto s = sum( PROJECT_VERSION_INT % 3, PROJECT_VERSION_INT % 5 );
 | 
			
		||||
	auto i = init( argc );
 | 
			
		||||
 | 
			
		||||
	std::cout << "Value:      " << ( s + i ) << std::endl;
 | 
			
		||||
	std::cout << "Git branch: " << GIT_BRANCH << std::endl;
 | 
			
		||||
 | 
			
		||||
	return ( 0 );
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3641
									
								
								uncrustify.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3641
									
								
								uncrustify.cfg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user