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 )