Добавлена поддержка сборочной системы CMake

This commit is contained in:
parent c3fa049363
commit e2cbaf56ef
5 changed files with 92 additions and 2 deletions

3
CMakeLists.txt Normal file
View File

@ -0,0 +1,3 @@
cmake_minimum_required( VERSION 3.23 FATAL_ERROR )
add_subdirectory( src )

View File

@ -1,16 +1,20 @@
# gis-map-server
Веб-сервис для распространения и тестовый клиент для отображения картографической информации.
[gis-map-server](src/gis-map-server/) - Python веб-сервер
[gis-client-render](src/gis-client-render) - Qt клиент для отображения
Архитектура проекта:
## Архитектура
![GIS Map Server](src/gis-map-server/docs/architecture.drawio.png)
Сервис принимает запросы на отрисовку региона средствами [ПК ЦКИ](https://kpda.ru/products/gis/) и возвращает отрисованную карту в виде картинки (поддерживаемые выходные форматы: bmp, png, jpeg).
Для сборки необходимо выполнить следующие команды:
## Сборка
- При помощи рекурсивной сборочной подсистемы:
```
cd src # Перейти в директорию с исходниками
lrelease gis-client-render/translations/*.ts # Единожды сформировать файл переводов
@ -19,6 +23,19 @@ CPULIST=x86 make install # Сборка под конкр
```
В результате в директорию `.install/neutrino` в корне проекта, инсталлируются runtime-компоненты.
- При помощи CMake:
```
cd src # Перейти в директорию с исходниками
mkdir -p .build # Создаём сборочную директорию
cd .build # Переходим в сборочную директорию
cmake --toolchain=$KPDA_HOST/mk/cmake/toolchain-nto-x86.cmake .. # Конфигурируем проект (например, x86)
cmake --build . # Сборка под сконфигурированную архитектуру (например, x86)
cmake --install . --prefix /installation/path # Установка проекта
```
В результате в директорию `/installation/path` инсталлируются runtime-компоненты.
## Запуск
При запуске веб-сервер `gis-map-server` считывает [конфигурационный файл](src/gis-map-server/gis-map-server.conf).
`gis-map-server` предоставляет веб-интерфейс, внешний вид которого показан на рисунке 1.

4
src/CMakeLists.txt Normal file
View File

@ -0,0 +1,4 @@
cmake_minimum_required( VERSION 3.23 FATAL_ERROR )
add_subdirectory( gis-map-server )
add_subdirectory( gis-client-render )

View File

@ -0,0 +1,54 @@
cmake_minimum_required( VERSION 3.23 FATAL_ERROR )
project( gis-client-render LANGUAGES CXX )
set( CMAKE_AUTOMOC ON )
set( CMAKE_AUTOUIC ON )
set( CMAKE_AUTORCC ON )
add_compile_options( -std=gnu++11 )
file( GLOB SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
images.qrc
translations.qrc )
add_executable( gis-client-render ${SOURCES} )
find_package( Qt5
COMPONENTS
Core
Gui
Network
Widgets
REQUIRED )
add_custom_command( OUTPUT
${CMAKE_CURRENT_SOURCE_DIR}/translations/gis-client-render_ru.qm
COMMAND
lrelease -silent ${CMAKE_CURRENT_SOURCE_DIR}/*.pro )
add_custom_target( generate_translations_client_render
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/translations/gis-client-render_ru.qm )
qt5_add_resources( gis-client-render
IMAGES
FILES
images.qrc
translations.qrc )
target_include_directories( gis-client-render
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR} )
add_dependencies( gis-client-render generate_translations_client_render )
target_link_libraries( gis-client-render
PUBLIC
Qt5::Core
Qt5::Gui
Qt5::Network
Qt5::Widgets )
install( TARGETS gis-client-render DESTINATION opt/gis/bin )

View File

@ -0,0 +1,12 @@
cmake_minimum_required( VERSION 3.23 FATAL_ERROR )
project( gis-map-server )
install( FILES START.sh DESTINATION opt/gis/sbin/gis-map-server.sh )
install( FILES net_interface.py DESTINATION opt/gis/data/resources )
install( FILES scheduler.py DESTINATION opt/gis/data/resources )
install( FILES server.py DESTINATION opt/gis/data/resources )
install( FILES storage.py DESTINATION opt/gis/data/resources )
install( FILES utils.py DESTINATION opt/gis/data/resources )
install( DIRECTORY html DESTINATION opt/gis/data/resources )
install( FILES gis-map-server.conf DESTINATION opt/gis/data/config )