Преглед изворни кода

Add BUILD_NUMBER option to CMake and version.py script

The BUILD_NUMBER option controls the last part of the version, allowing us to increase it for each build.

This commit also adds version.py, which simply prints the version (e.g. "5.01") specified in CMakeLists.txt.

The script will be used to determine the build number.
Davide Beatrici пре 4 година
родитељ
комит
272ec5a8ef
2 измењених фајлова са 35 додато и 1 уклоњено
  1. 7 1
      CMakeLists.txt
  2. 28 0
      version.py

+ 7 - 1
CMakeLists.txt

@@ -1,7 +1,13 @@
 cmake_minimum_required(VERSION 3.7)
 
+set(BUILD_NUMBER CACHE STRING "The number of the current build.")
+
+if ("${BUILD_NUMBER}" STREQUAL "")
+	set(BUILD_NUMBER "0")
+endif()
+
 project("SoftEther VPN"
-  VERSION 5.01.9674
+  VERSION "5.01.${BUILD_NUMBER}"
   LANGUAGES C
 )
 

+ 28 - 0
version.py

@@ -0,0 +1,28 @@
+import argparse
+
+def main():
+	parser = argparse.ArgumentParser()
+	parser.add_argument('-n', '--newline', action = 'store_true', help = 'Break line after printing version')
+	args = parser.parse_args()
+
+	end = None if args.newline else ''
+
+	version = None
+	with open('CMakeLists.txt', 'r') as file:
+		for line in file:
+			if 'VERSION "' in line and '.${BUILD_NUMBER}"' in line:
+				line = line.replace('VERSION "', '')
+				line = line[0 : line.find('.${BUILD_NUMBER}"')].strip()
+				version = line
+				break
+
+	if version is None:
+		raise Exception('Unable to read version from CMakeLists.txt')
+
+	if len(version) == 0 or not '.' in version:
+			raise Exception('Bad version: "{0}"'.format(version))
+
+	print(version, end = end)
+
+if __name__ == '__main__':
+	main()