Browse Source

link win32 versioning resources

georges 25 years ago
parent
commit
83c0669bea

+ 3 - 1
dtool/pptempl/Global.gmsvc.pp

@@ -96,7 +96,9 @@
 #defer STATIC_LIB_C lib /nologo $[sources] /OUT:"$[osfilename $[target]]" 
 #defer STATIC_LIB_C lib /nologo $[sources] /OUT:"$[osfilename $[target]]" 
 #defer STATIC_LIB_C++ $[STATIC_LIB_C]
 #defer STATIC_LIB_C++ $[STATIC_LIB_C]
 
 
-#defer SHARED_LIB_C link /nologo /dll $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
+#defer ver_resource $[directory]\ver.res
+
+#defer SHARED_LIB_C link /nologo /dll $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] "$[ver_resource]" $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
 #defer SHARED_LIB_C++ $[SHARED_LIB_C]
 #defer SHARED_LIB_C++ $[SHARED_LIB_C]
 
 
 #defer LINK_BIN_C link /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
 #defer LINK_BIN_C link /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"

+ 4 - 1
dtool/pptempl/Global.msvc.pp

@@ -100,7 +100,10 @@
 #defer STATIC_LIB_C lib /nologo $[sources] /OUT:"$[osfilename $[target]]" 
 #defer STATIC_LIB_C lib /nologo $[sources] /OUT:"$[osfilename $[target]]" 
 #defer STATIC_LIB_C++ $[STATIC_LIB_C]
 #defer STATIC_LIB_C++ $[STATIC_LIB_C]
 
 
-#defer SHARED_LIB_C link /nologo /dll $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
+#defer ver_resource $[directory]\ver.res
+
+#defer SHARED_LIB_C link /nologo /dll $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] "$[ver_resource]" $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
+//#defer SHARED_LIB_C link /nologo /dll $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
 #defer SHARED_LIB_C++ $[SHARED_LIB_C]
 #defer SHARED_LIB_C++ $[SHARED_LIB_C]
 
 
 #defer LINK_BIN_C link /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
 #defer LINK_BIN_C link /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"

+ 21 - 4
dtool/pptempl/Template.gmsvc.pp

@@ -18,11 +18,23 @@
 // $DTOOL/pptempl/System.pp
 // $DTOOL/pptempl/System.pp
 // The user's PPREMAKE_CONFIG file.
 // The user's PPREMAKE_CONFIG file.
 // $DTOOL/pptempl/Global.pp
 // $DTOOL/pptempl/Global.pp
-// $DTOOL/pptempl/Global.msvc.pp
+// $DTOOL/pptempl/Global.gmsvc.pp
 // All of the Sources.pp files in the current source hierarchy
 // All of the Sources.pp files in the current source hierarchy
 // $DTOOL/Depends.pp, once for each Sources.pp file
 // $DTOOL/Depends.pp, once for each Sources.pp file
-// Template.msvc.pp (this file), once for each Sources.pp file
+// Template.gmsvc.pp (this file), once for each Sources.pp file
 
 
+#defun decygwin frompat,topat,path
+  #foreach file $[path]
+    #if $[isfullpath $[file]]
+      $[patsubstw $[frompat],$[topat],$[cygpath_w $[file]]]
+    #else
+      $[patsubstw $[frompat],$[topat],$[osfilename $[file]]]
+    #endif
+  #end file
+#end decygwin
+
+#define dtool_ver_dir_cyg $[DTOOL_INSTALL]/src/dtoolbase
+#define dtool_ver_dir $[decygwin %,%,$[dtool_ver_dir_cyg]]
 
 
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
 #if $[or $[eq $[DIR_TYPE], src],$[eq $[DIR_TYPE], metalib]]
 #if $[or $[eq $[DIR_TYPE], src],$[eq $[DIR_TYPE], metalib]]
@@ -320,10 +332,15 @@ $[directory]/stamp :
 $[varname] = $[sources]
 $[varname] = $[sources]
   #define target $[so_dir]/lib$[TARGET]$[dllext].dll
   #define target $[so_dir]/lib$[TARGET]$[dllext].dll
   #define sources $($[varname])
   #define sources $($[varname])
-$[target] : $[sources] $[so_dir]/stamp
+  #define flags   $[get_cflags] $[C++FLAGS] $[CFLAGS_OPT$[OPTIMIZE]] $[CFLAGS_SHARED] $[building_var:%=/D%]
+$[target] : $[sources] $[so_dir]/stamp $[dtool_ver_dir_cyg]/version.rc
+   //  first generate builddate for rc compiler
+	cl /nologo /EP "$[dtool_ver_dir]\verdate.cpp"  > "$[dtool_ver_dir]\verdate.h"
+	rc /n /fo"$[ver_resource]" $[filter /D%, $[flags]]   "$[dtool_ver_dir]\version.rc"
+	rm -f "$[dtool_ver_dir]\verdate.h"
   #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
   #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
 	$[SHARED_LIB_C++]
 	$[SHARED_LIB_C++]
-  #else
+  #else  
 	$[SHARED_LIB_C]
 	$[SHARED_LIB_C]
   #endif
   #endif
 
 

+ 19 - 1
dtool/pptempl/Template.msvc.pp

@@ -25,6 +25,19 @@
 // Template.msvc.pp (this file), once for each Sources.pp file
 // Template.msvc.pp (this file), once for each Sources.pp file
 
 
 
 
+#defun decygwin frompat,topat,path
+  #foreach file $[path]
+    #if $[isfullpath $[file]]
+      $[patsubstw $[frompat],$[topat],$[cygpath_w $[file]]]
+    #else
+      $[patsubstw $[frompat],$[topat],$[osfilename $[file]]]
+    #endif
+  #end file
+#end decygwin
+
+#define dtool_ver_dir_cyg $[DTOOL_INSTALL]/src/dtoolbase
+#define dtool_ver_dir $[decygwin %,%,$[dtool_ver_dir_cyg]]
+
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
 #if $[or $[eq $[DIR_TYPE], src],$[eq $[DIR_TYPE], metalib]]
 #if $[or $[eq $[DIR_TYPE], src],$[eq $[DIR_TYPE], metalib]]
 //////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////
@@ -302,7 +315,12 @@ $[osfilename $[directory]] :
 $[varname] = $[osfilename $[sources]]
 $[varname] = $[osfilename $[sources]]
   #define target $[so_dir]\lib$[TARGET]$[dllext].dll
   #define target $[so_dir]\lib$[TARGET]$[dllext].dll
   #define sources $($[varname])
   #define sources $($[varname])
-$[target] : $[sources]
+  #define flags   $[get_cflags] $[C++FLAGS] $[CFLAGS_OPT$[OPTIMIZE]] $[CFLAGS_SHARED] $[building_var:%=/D%]  
+$[target] : $[sources] "$[dtool_ver_dir]\version.rc"
+    //  first generate builddate for rc compiler
+	cl /nologo /EP "$[dtool_ver_dir]\verdate.cpp"  > "$[dtool_ver_dir]\verdate.h"
+	rc /n /fo"$[ver_resource]" $[filter /D%, $[flags]] "$[dtool_ver_dir]\version.rc"
+	rm -f "$[dtool_ver_dir]\verdate.h"
   #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
   #if $[filter %.cxx %.yxx %.lxx,$[get_sources]]
 	$[SHARED_LIB_C++]
 	$[SHARED_LIB_C++]
   #else
   #else