84 lines
2.5 KiB
CMake
84 lines
2.5 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
|
|
|
project(snag)
|
|
set(PROJECT_VERSION_MAJOR 0)
|
|
set(PROJECT_VERSION_MINOR 1)
|
|
set(PROJECT_VERSION_PATCH 0)
|
|
string(TIMESTAMP PROJECT_VERSION_BUILD "%y%j.%H%M")
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
|
include(snag_git)
|
|
include(snag_platforms)
|
|
set(PROJECT_VERSION_SUFFIX "-${GIT_VERSION_SUFFIX}")
|
|
|
|
# Overwrite suffix for Release or Release Candidate builds
|
|
set(PROJECT_VERSION_SUFFIX "-alpha.1")
|
|
set(CMAKE_BUILD_TYPE "Release")
|
|
if(CMAKE_BUILD_TYPE)
|
|
set(BUILD_TYPE ${CMAKE_BUILD_TYPE})
|
|
else()
|
|
set(BUILD_TYPE "Debug")
|
|
endif()
|
|
|
|
set(PROJECT_VERSION_CODENAME ${OS_RELEASE_VERSION_CODENAME})
|
|
set(PROJECT_VERSION_DISPLAY "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${PROJECT_VERSION_BUILD}")
|
|
message(STATUS "PROJECT_VERSION_CODENAME: ${PROJECT_VERSION_CODENAME}")
|
|
message(STATUS "PROJECT_VERSION_DISPLAY: ${PROJECT_VERSION_DISPLAY}")
|
|
message(STATUS "")
|
|
|
|
# Deb package
|
|
set(DEB_PACKAGE_VERSION "${PROJECT_VERSION_DISPLAY}${PROJECT_VERSION_SUFFIX}")
|
|
if(PROJECT_VERSION_CODENAME)
|
|
set(DEB_PACKAGE_VERSION "${DEB_PACKAGE_VERSION}-${PROJECT_VERSION_CODENAME}")
|
|
endif()
|
|
set(DEB_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
|
|
string(TIMESTAMP DEB_PACKAGE_CHANGELOG_DATE "%a, %d %b %Y %H:%M:%S +0000")
|
|
|
|
configure_file(
|
|
"${CMAKE_SOURCE_DIR}/debian/changelog.in"
|
|
"${CMAKE_SOURCE_DIR}/debian/changelog"
|
|
)
|
|
|
|
configure_file(
|
|
"${CMAKE_SOURCE_DIR}/source/snag/version_.d.in"
|
|
"${CMAKE_SOURCE_DIR}/source/snag/version_.d"
|
|
)
|
|
|
|
message(STATUS "DEB_PACKAGE_NAME: ${DEB_PACKAGE_NAME}")
|
|
message(STATUS "DEB_PACKAGE_VERSION: ${DEB_PACKAGE_VERSION}")
|
|
message(STATUS "")
|
|
|
|
file(MAKE_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
|
|
|
|
add_custom_command(
|
|
OUTPUT "${CMAKE_SOURCE_DIR}/bin/${CMAKE_PROJECT_NAME}"
|
|
COMMAND build dlang ldc --output "${CMAKE_SOURCE_DIR}/bin" --project "${CMAKE_SOURCE_DIR}"
|
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
|
COMMENT "Building snag with dub"
|
|
)
|
|
|
|
add_custom_target(snag ALL
|
|
DEPENDS "${CMAKE_SOURCE_DIR}/bin/${CMAKE_PROJECT_NAME}"
|
|
)
|
|
|
|
include(snag_patch)
|
|
|
|
add_dependencies(snag apply_config_patch)
|
|
|
|
install(
|
|
FILES "${CMAKE_SOURCE_DIR}/bin/${CMAKE_PROJECT_NAME}"
|
|
DESTINATION bin
|
|
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
|
|
)
|
|
|
|
install(
|
|
FILES "${CMAKE_SOURCE_DIR}/files/snag.json.bak"
|
|
DESTINATION /etc/snag/
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
)
|
|
|
|
install(
|
|
FILES "${CMAKE_SOURCE_DIR}/files/snag.8"
|
|
DESTINATION /usr/share/man/ru/man8/
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
)
|