File: Version.cmake

package info (click to toggle)
gpick 0.2.6-1.3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,824 kB
  • sloc: cpp: 27,984; python: 738; xml: 70; makefile: 37; sh: 10
file content (50 lines) | stat: -rw-r--r-- 2,003 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
cmake_minimum_required(VERSION 3.5)
find_program(GIT_EXECUTABLE git DOC "Git version control")
mark_as_advanced(GIT_EXECUTABLE)
find_file(GITDIR NAMES .git PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
find_file(VERSION_FILE NAMES version.py PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
if (NOT VERSION_FILE)
	message(SEND_ERROR "Missing version file \"version.py\"")
endif()
file(STRINGS "${VERSION_FILE}" GPICK_VERSION LIMIT_COUNT 1)
string(FIND ${GPICK_VERSION} "=" position)
string(LENGTH ${GPICK_VERSION} length)
math(EXPR position "${position} + 2")
math(EXPR length "${length} - ${position} - 1")
string(SUBSTRING ${GPICK_VERSION} ${position} ${length} GPICK_VERSION)
set(GPICK_BUILD_PLATFORM "${CMAKE_SYSTEM_NAME}")
if (GIT_EXECUTABLE AND GITDIR)
	set(old_tz $ENV{TZ})
	set(ENV{TZ} UTC)
	execute_process(COMMAND "${GIT_EXECUTABLE}" show --quiet "--date=format-local:%Y-%m-%d;%H:%M:%S" "--format=%H;%cd;"
		WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
		OUTPUT_VARIABLE version_parts
		ERROR_VARIABLE version_error
		OUTPUT_STRIP_TRAILING_WHITESPACE
	)
	set(ENV{TZ} "${old_tz}")
	if (version_error)
		message(SEND_ERROR "Failed to get version: ${version_error}")
	endif()
	list(LENGTH version_parts length)
	if (length LESS 2)
		message(SEND_ERROR "Invalid version string ${version_parts}")
	endif()
	list(GET version_parts 0 GPICK_REVISION)
	list(GET version_parts 1 GPICK_BUILD_DATE)
	list(GET version_parts 2 GPICK_BUILD_TIME)
	string(SUBSTRING ${GPICK_REVISION} 0 10 GPICK_REVISION)
else()
	find_file(VERSION_TXT_FILE NAMES version.txt PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
	if (VERSION_TXT_FILE)
		file(STRINGS "${VERSION_TXT_FILE}" version_parts LIMIT_COUNT 3)
		list(GET version_parts 0 GPICK_REVISION)
		list(GET version_parts 1 GPICK_BUILD_DATE)
		list(GET version_parts 2 GPICK_BUILD_TIME)
		string(SUBSTRING ${GPICK_REVISION} 0 10 GPICK_REVISION)
		return()
	endif()
	set(GPICK_REVISION "unknown")
	set(GPICK_BUILD_DATE "")
	set(GPICK_BUILD_TIME "")
endif()