David Rose 16 ani în urmă
părinte
comite
e6cb4038b2
2 a modificat fișierele cu 11 adăugiri și 3 ștergeri
  1. 2 0
      dtool/pptempl/Global.gmsvc.pp
  2. 9 3
      dtool/pptempl/Template.gmsvc.pp

+ 2 - 0
dtool/pptempl/Global.gmsvc.pp

@@ -148,3 +148,5 @@
 
 #defer LINK_BIN_C $[LINKER] /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath] $[EXTRA_LIBPATH] $[tau_lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] $[tau_libs] /OUT:"$[osfilename $[target]]"$[if $[eq $[USE_COMPILER], MSVC9],; $[MT_BIN] -nologo -manifest $[target].manifest -outputresource:$[target]\;1,]
 #defer LINK_BIN_C++ $[LINK_BIN_C]
+
+#defer MIDL_COMMAND $[COMPILE_IDL] /out $[ODIR] $[IDL_CDEFS:%=/D%] $[idl]

+ 9 - 3
dtool/pptempl/Template.gmsvc.pp

@@ -377,7 +377,8 @@ $[varname] = $[sources]
 // not parallel (requires gmake 3.79) because of link.exe conflicts in TMP dir (see audiotraits dir)
 #if $[or $[GENERATE_BUILDDATE],$[WIN_RESOURCE_FILE]]
   #define resource_file $[or $[WIN_RESOURCE_FILE],$[dtool_ver_dir_cyg]/version.rc]
-$[target] : $[sources] $[static_lib_dependencies] $[resource_file] $[DLLBASEADDRFILENAME:%=$[dtool_ver_dir_cyg]/%]
+  #define tlb_depend $[patsubst %.idl,$[ODIR]/%.tlb,$[filter %.idl, $[get_sources]]]
+$[target] : $[sources] $[static_lib_dependencies] $[resource_file] $[DLLBASEADDRFILENAME:%=$[dtool_ver_dir_cyg]/%] $[tlb_depend]
 
  // first generate builddate for rc compiler using compiler preprocessor
  #define ver_resource "$[ODIR]\$[lib_prefix]$[TARGET].res"
@@ -502,6 +503,13 @@ $[TAB] $[INTERROGATE_MODULE] -oc $[target] -module "$[igatemod]" -library "$[iga
 
 #endif  // igatemout
 
+#foreach idl $[filter %.idl, $[get_sources]]
+  #define idl_basename $[basename $[idl]]
+$[ODIR]/$[idl_basename].tlb : $[ODIR]/$[idl_basename].h
+$[ODIR]/$[idl_basename].h : $[idl]
+$[TAB] $[MIDL_COMMAND]
+#end idl
+
 #end metalib_target lib_target static_lib_target dynamic_lib_target ss_lib_target
 
 
@@ -563,8 +571,6 @@ $[TAB] $[VERHEADER_GENERATOR_RULE]
 $[VERHEADER_DEPENDENTS] : $[verhdr_to_gen]
 #endif
 
-#define MIDL_COMMAND $[COMPILE_IDL] /out $[ODIR] $[ODIR]/$[IDL_BASENAME].idl $[IDL_CDEFS:%=/D%]
-
 #define idl_to_gen $[filter %.idl, $[GENERATED_SOURCES]]
 #if $[idl_to_gen]
 $[idl_to_gen] : $[GENERATED_IDL_DEPENDENCIES]