diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/Packager.cmake | 49 | ||||
-rw-r--r-- | cmake/Modules/ServiceScript.cmake | 42 |
2 files changed, 76 insertions, 15 deletions
diff --git a/cmake/Modules/Packager.cmake b/cmake/Modules/Packager.cmake index 898e40bcb..6f77fd3a8 100644 --- a/cmake/Modules/Packager.cmake +++ b/cmake/Modules/Packager.cmake @@ -33,10 +33,35 @@ function(get_next_version VERSION NEXT_VERSION) math(EXPR major "${major} + 1") endif() - set(minor "0${minor}") + if (minor LESS 10) + set(minor "0${minor}") + endif() + set(${NEXT_VERSION} "${major}.${minor}" PARENT_SCOPE) endfunction() +macro(extract_version) + # Extract version from git + execute_process( + COMMAND git describe --long --match v* + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE VER + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if (NOT VER) + set(VER "v1.0-0-gcafe") + endif() + + message(STATUS "Git describe output: ${VER}") + + string(REGEX REPLACE "v([0-9]+).([0-9]+)-([0-9]+)-(g[0-9a-f]+)" "\\1;\\2;\\3;\\4" VER ${VER}) + list(GET VER 0 VERSION_MAJOR) + list(GET VER 1 VERSION_MINOR) + list(GET VER 2 VERSION_REVISION) + list(GET VER 3 COMMIT_NAME) +endmacro(extract_version) + macro(make_packages) if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") # parse /etc/os-release @@ -49,23 +74,17 @@ macro(make_packages) set(OS_${_name} ${_value}) endforeach() - # extract version from git - execute_process( - COMMAND git describe --long --match v* - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE VER - OUTPUT_STRIP_TRAILING_WHITESPACE - ) + extract_version() - if (NOT VER) - set(VER "v1.0-1-gcafe") - endif() + message(STATUS "Version major: ${VERSION_MAJOR}") + message(STATUS "Version minor: ${VERSION_MINOR}") + message(STATUS "Revision: ${VERSION_REVISION}") + message(STATUS "Commit hash: ${COMMIT_NAME}") - string(REGEX REPLACE "v(.*)-([0-9]+)-(g[0-9a-f]+)" "\\1;\\2;\\3" VER ${VER}) - list(GET VER 0 tag) + set(tag "${VERSION_MAJOR}.${VERSION_MINOR}") string(REPLACE "-" "~" tag ${tag}) - list(GET VER 1 commit_num) - list(GET VER 2 commit_name) + set(commit_num ${VERSION_REVISION}) + set(commit_name ${COMMIT_NAME}) if (NOT DEFINED ENV{BUILD_NUMBER}) set(bld "b1") diff --git a/cmake/Modules/ServiceScript.cmake b/cmake/Modules/ServiceScript.cmake new file mode 100644 index 000000000..110aa816b --- /dev/null +++ b/cmake/Modules/ServiceScript.cmake @@ -0,0 +1,42 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +######################################## +# +# Find the LongBow libraries and includes +# This module sets: +# SYSTEMD_FOUND: True if Systemd was found +# SYSTEMD_SERVICES_INSTALL_DIR: The Systemd install directory + +set(SYSTEMD_SERVICE_FOLDER "/lib/systemd/system") + +macro(install_service_script script) +cmake_parse_arguments(ARG + "" + "COMPONENT" + "" + ${ARGN} +) + + # Install service file only if + # 1) We are on a linux system + # 2) The installation prefix is /usr + + if (NOT ARG_COMPONENT) + set(ARG_COMPONENT hicn) + endif() + + if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr") + install (FILES ${script} DESTINATION ${SYSTEMD_SERVICE_FOLDER} COMPONENT ${ARG_COMPONENT}) + endif() +endmacro(install_service_script)
\ No newline at end of file |