diff options
Diffstat (limited to 'vpc_scripts/swig_depend.cmd')
| -rw-r--r-- | vpc_scripts/swig_depend.cmd | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vpc_scripts/swig_depend.cmd b/vpc_scripts/swig_depend.cmd new file mode 100644 index 0000000..e26f656 --- /dev/null +++ b/vpc_scripts/swig_depend.cmd @@ -0,0 +1,69 @@ +@setlocal enableextensions & "%2\..\game\sdktools\Perl\bin\perl.exe" -x "%~f0" %* & goto :EOF +#!/usr/bin/perl + +my $swigFile = $ARGV[ 0 ]; +my $srcDir = $ARGV[ 1 ]; +my $pyVer = $ARGV[ 2 ]; + +my $swig = $srcDir . "\\devtools\\swigwin-1.3.34\\swig.exe"; + +$dirtyFile = $swigFile . ".dep"; + +if ( ! -f $dirtyFile ) +{ + open DIRTY, ">${dirtyFile}"; + print DIRTY <<"EOF"; +// +// This file is simply here to be a build dependency for ${swigFile}.i +// The modification time of this file will be the newest modification time +// of all of the dependencies of ${baseFile}.i as generated by +// +// ${swig} \\ +// -Fmicrosoft -ignoremissing -c++ -I${srcDir}\\public -python -M ${swigFile}.i +// +// If this file doesn't exist, it is created by the pre-build step +// +EOF + + ( $dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks ) = stat( $dirtyFile ); + + print( "[swig_depend] Setting ${dirtyFile} Modification Time To: " . localtime( $atime ) . "\n" ); + + exit( 0 ); +} + +if ( ! -f $dirtyFile ) +{ + die( "Can't Find ${dirtyFile}\n" ); +} + +( $dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks ) = stat( $dirtyFile ); + +my $dirtyTime = $mtime; +my $maxTime = $mtime; + +open SWIG, "$swig -Fmicrosoft -ignoremissing -c++ -Iswig_python${pyVer} -I${srcDir}\\public -python -M ${swigFile}.i |" || die( "Couldn't Run Swig\n" ); + +while ( <SWIG> ) +{ + chomp; + s/^\s+//; + s/\s+\\\s*$//; + + ( $dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks ) = stat( $_ ); + + if ( $mtime > $maxTime ) + { + $maxTime = $mtime; + } +} + +close SWIG; + +if ( $maxTime > $dirtyTime ) +{ + print( "[swig_depend] Setting ${dirtyFile} Modification Time To: " . localtime( $atime ) . "\n" ); + utime $maxTime, $maxTime, $dirtyFile; +} + +exit( 0 ); |