@@ -9,6 +9,12 @@ function dayNumber() {
9
9
return dayOfYear ;
10
10
}
11
11
12
+ function calculateMinorVersion ( ) {
13
+ var baseYear = 2020 ; // VER_MINOR starts at 4 in 2020
14
+ var currentYear = new Date ( ) . getFullYear ( ) ;
15
+ return ( currentYear - baseYear ) + 4 ; // Increment annually
16
+ }
17
+
12
18
function readAll ( filename ) {
13
19
var contents = fs . readFileSync ( filename , 'utf8' ) ;
14
20
return contents ;
@@ -20,16 +26,21 @@ function fileExists(path) {
20
26
21
27
function generateVersionHpp ( ) {
22
28
var palTxt = "CPP11" ;
29
+ var verMinor = calculateMinorVersion ( ) ; // Calculate minor version dynamically
30
+ var verPatch = dayNumber ( ) ; // Day of the year as the patch version
31
+
23
32
// Read version tag
24
33
var ver1 = readAll ( "../Solutions/version.txt" ) ;
25
34
// Remove end-of-line
26
35
ver1 = ver1 . replace ( "\n" , "" ) ;
27
- // Replace 999 by today's dayNumber for nightly builds
28
- ver1 = ver1 . replace ( "999" , dayNumber ( ) ) ;
29
- // console.log("version.txt => " + ver1 + "\n");
36
+ // Replace placeholders in version tag
37
+ ver1 = ver1 . replace ( "year" , verMinor ) . replace ( "day" , verPatch ) ;
38
+
39
+ // Parse version tag into components
30
40
var ver2 = ver1 . split ( "." ) . join ( "," ) ;
31
41
var arr = ver1 . split ( "." ) ;
32
42
var versionHpp = "../lib/include/public/Version.hpp" ;
43
+
33
44
if ( fileExists ( versionHpp ) ) {
34
45
var versionHppTxt = readAll ( versionHpp ) ;
35
46
if ( versionHppTxt . search ( ver1 ) != - 1 ) {
@@ -39,15 +50,18 @@ function generateVersionHpp() {
39
50
// Delete and recreate
40
51
fs . unlinkSync ( versionHpp ) ;
41
52
}
53
+
42
54
var templText = readAll ( "../lib/include/public/Version.hpp.template" ) ;
43
55
templText = templText . replace ( / \@ u l l / gi, "@" ) ;
44
56
templText = templText . replace ( / \@ B U I L D _ V E R S I O N _ M A J O R \@ / g, arr [ 0 ] ) ;
45
57
templText = templText . replace ( / \@ B U I L D _ V E R S I O N _ M I N O R \@ / g, arr [ 1 ] ) ;
46
58
templText = templText . replace ( / \@ B U I L D _ V E R S I O N _ P A T C H \@ / g, arr [ 2 ] ) ;
47
59
templText = templText . replace ( / \@ B U I L D _ N U M B E R \@ / g, arr [ 3 ] ) ;
48
60
templText = templText . replace ( / \@ P A L _ I M P L E M E N T A T I O N _ U P P E R \@ / g, palTxt ) ;
61
+
49
62
fs . writeFileSync ( versionHpp , templText ) ;
50
63
console . log ( "Version.hpp " + ver1 + " generated (clean build)\n" ) ;
51
64
}
52
65
53
66
generateVersionHpp ( ) ;
67
+
0 commit comments