arch-repo-manager/srv/CMakeLists.txt

108 lines
3.8 KiB
CMake

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
# add project files
set(HEADER_FILES)
set(SRC_FILES main.cpp)
set(TEST_HEADER_FILES)
set(TEST_SRC_FILES)
set(HTML_FILES static/index.html static/log.html)
set(JAVA_SCRIPT_FILES
static/js/ajaxhelper.js
static/js/buildactionspage.js
static/js/customrendering.js
static/js/genericrendering.js
static/js/globalstatuspage.js
static/js/log.js
static/js/packagedetailspage.js
static/js/packagesearchpage.js
static/js/singlepage.js
static/js/terminal.js
static/js/utils.js
static/node_modules/xterm/lib/xterm.js
static/node_modules/xterm-addon-search/out/SearchAddon.js)
set(CSS_FILES static/css/basics.css static/css/genericrendering.css static/css/layout.css static/css/log.css
static/css/specifics.css static/node_modules/xterm/css/xterm.css)
set(IMG_FILES
static/img/logo.svg
static/img/icon/content-save.svg
static/img/icon/power.svg
static/img/icon/play.svg
static/img/icon/magnify.svg
static/img/icon/select-all.svg
static/img/icon/select-off.svg
static/img/icon/plus.svg
static/img/icon/delete.svg
static/img/icon/undo-variant.svg
static/img/icon/restart.svg
static/img/icon/reload.svg
static/img/icon/dock-window.svg
static/img/icon/download.svg
static/img/icon/stop.svg
static/img/icon/database-white.svg
static/img/icon/magnify-white.svg
static/img/icon/package-variant-white.svg
static/img/icon/cogs-white.svg
static/img/icon/console-line-white.svg
static/img/icon/table-refresh.svg)
set(CMAKE_MODULE_FILES cmake/modules/SystemdService.cmake)
set(CMAKE_TEMPLATE_FILES cmake/templates/systemd.service.in cmake/templates/sysusers.conf.in
cmake/templates/tmpfiles.conf.in)
# meta data
set(META_PROJECT_NAME buildservice)
set(META_PROJECT_TYPE application)
set(META_PROJECT_VARNAME BUILD_SERVICE)
set(META_APP_NAME "Repo manager and package builder for Arch Linux")
set(META_APP_AUTHOR "Martchus")
set(META_APP_DESCRIPTION
"Daemon and web application for building Arch Linux packages and managing custom Arch Linux repositories")
set(META_VERSION_MAJOR 0)
set(META_VERSION_MINOR 0)
set(META_VERSION_PATCH 1)
# include CMake modules from own project directory
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" "${CMAKE_MODULE_PATH}")
# find c++utilities
set(CONFIGURATION_PACKAGE_SUFFIX
""
CACHE STRING "sets the suffix for find_package() calls to packages configured via c++utilities")
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.4.0 REQUIRED)
use_cpp_utilities()
# find backend libraries
find_package(librepomgr ${META_APP_VERSION} REQUIRED)
use_librepomgr()
# apply basic configuration
include(BasicConfig)
include(WindowsResources)
include(AppTarget)
include(ShellCompletion)
include(ConfigHeader)
# add install target for web files
set(WEB_FILES ${HTML_FILES} ${JAVA_SCRIPT_FILES} ${CSS_FILES} ${IMG_FILES})
set(WEB_FILES_INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/${META_DATA_DIR}/web")
foreach (WEB_FILE ${WEB_FILES})
get_filename_component(WEB_DIR "${WEB_FILE}" DIRECTORY)
install(
FILES "${WEB_FILE}"
DESTINATION "${WEB_FILES_INSTALL_DESTINATION}/${WEB_DIR}"
COMPONENT web-files)
endforeach ()
if (NOT TARGET install-web-files)
add_custom_target(install-web-files COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=web-files -P
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
endif ()
# add installs for config file template
install(
FILES doc/server-config-example.conf doc/presets-example.json doc/nginx-config-example.conf
DESTINATION "${CMAKE_INSTALL_PREFIX}/${META_DATA_DIR}/skel"
COMPONENT config)
# make files for systemd service
include(SystemdService)
add_systemd_service(ARGUMENTS run -c "/etc/${META_PROJECT_NAME}${META_CONFIG_SUFFIX}/server.conf")