Начало
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