0028959: Configuration, genproj - provide warning on update of scripts in root folder...
authorabv <abv@opencascade.com>
Sat, 29 Jul 2017 06:42:16 +0000 (09:42 +0300)
committerabv <abv@opencascade.com>
Thu, 17 Aug 2017 19:21:16 +0000 (22:21 +0300)
When updating files msvc.bat and draw.bat/sh in the root folder by copying template from adm/templates, procedure genproj will give a warning (unless the files are already the same); if the target file is newer, its copy is saved with additional extension .bak.

adm/genproj.tcl
dox/dev_guides/building/code_blocks.md

index c5ca942..855d001 100644 (file)
@@ -26,7 +26,7 @@ set path [file normalize .]
 set THE_CASROOT ""
 set fBranch ""
 if { [info exists ::env(CASROOT)] } {
-  set THE_CASROOT "$::env(CASROOT)"
+  set THE_CASROOT [file normalize "$::env(CASROOT)"]
 }
 
 proc _get_options { platform type branch } {
@@ -344,6 +344,22 @@ proc genproj {theFormat args} {
   genAllResources
 }
 
+# copy file providing warning if the target file exists and has 
+# different date or size; if it is newer than source, save it as .bak
+proc copy_with_warning {from to} {
+  if { [file exists "$to"] &&
+      ([file size   "$to"] != [file size  "$from"] ||
+       [file mtime  "$to"] != [file mtime "$from"]) } {
+    puts "Warning: file $to is updated (copied from $from)!"
+    if { [file mtime $to] > [file mtime $from] } {
+      puts "Info: old content of file $to is saved in ${to}.bak"
+      file copy -force -- "$to" "${to}.bak"
+    }
+  }
+
+  file copy -force -- "$from" "$to"
+}
+
 proc genprojbat {theFormat thePlatform} {
   set aTargetPlatformExt sh
   if { $thePlatform == "wnt" || $thePlatform == "uwp" } {
@@ -369,11 +385,11 @@ proc genprojbat {theFormat thePlatform} {
       close $anEnvFile
     }
 
-    file copy -force -- "$::THE_CASROOT/adm/templates/draw.${aTargetPlatformExt}" "$::path/draw.${aTargetPlatformExt}"
+    copy_with_warning "$::THE_CASROOT/adm/templates/draw.${aTargetPlatformExt}" "$::path/draw.${aTargetPlatformExt}"
   }
 
   if { [regexp {^vc} $theFormat] } {
-    file copy -force -- "$::THE_CASROOT/adm/templates/msvc.bat" "$::path/msvc.bat"
+    copy_with_warning "$::THE_CASROOT/adm/templates/msvc.bat" "$::path/msvc.bat"
   } else {
     switch -exact -- "$theFormat" {
       "cbp"   {
index 932ba75..71d4e04 100644 (file)
@@ -56,6 +56,6 @@ To build all toolkits, click **Build->Build workspace** in the menu bar.
 
 To start *DRAWEXE*, which has been built with **Code::Blocks** on Mac OS X, run the script
 ~~~~~
-   ./draw_cbp.sh cbp [d]
+   ./draw.sh cbp [d]
 ~~~~~
 Option *d* is used if OCCT has been built in **Debug** mode.