@@ -9,6 +9,12 @@ function dayNumber() {
99 return dayOfYear ;
1010}
1111
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+
1218function readAll ( filename ) {
1319 var contents = fs . readFileSync ( filename , 'utf8' ) ;
1420 return contents ;
@@ -20,16 +26,21 @@ function fileExists(path) {
2026
2127function generateVersionHpp ( ) {
2228 var palTxt = "CPP11" ;
29+ var verMinor = calculateMinorVersion ( ) ; // Calculate minor version dynamically
30+ var verPatch = dayNumber ( ) ; // Day of the year as the patch version
31+
2332 // Read version tag
2433 var ver1 = readAll ( "../Solutions/version.txt" ) ;
2534 // Remove end-of-line
2635 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
3040 var ver2 = ver1 . split ( "." ) . join ( "," ) ;
3141 var arr = ver1 . split ( "." ) ;
3242 var versionHpp = "../lib/include/public/Version.hpp" ;
43+
3344 if ( fileExists ( versionHpp ) ) {
3445 var versionHppTxt = readAll ( versionHpp ) ;
3546 if ( versionHppTxt . search ( ver1 ) != - 1 ) {
@@ -39,15 +50,18 @@ function generateVersionHpp() {
3950 // Delete and recreate
4051 fs . unlinkSync ( versionHpp ) ;
4152 }
53+
4254 var templText = readAll ( "../lib/include/public/Version.hpp.template" ) ;
4355 templText = templText . replace ( / \@ u l l / gi, "@" ) ;
4456 templText = templText . replace ( / \@ B U I L D _ V E R S I O N _ M A J O R \@ / g, arr [ 0 ] ) ;
4557 templText = templText . replace ( / \@ B U I L D _ V E R S I O N _ M I N O R \@ / g, arr [ 1 ] ) ;
4658 templText = templText . replace ( / \@ B U I L D _ V E R S I O N _ P A T C H \@ / g, arr [ 2 ] ) ;
4759 templText = templText . replace ( / \@ B U I L D _ N U M B E R \@ / g, arr [ 3 ] ) ;
4860 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+
4962 fs . writeFileSync ( versionHpp , templText ) ;
5063 console . log ( "Version.hpp " + ver1 + " generated (clean build)\n" ) ;
5164}
5265
5366generateVersionHpp ( ) ;
67+
0 commit comments