aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/Packager.cmake49
-rw-r--r--cmake/Modules/ServiceScript.cmake42
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