diff options
Diffstat (limited to 'ACE/bin/msvc_cidlc.pl')
-rwxr-xr-x | ACE/bin/msvc_cidlc.pl | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/ACE/bin/msvc_cidlc.pl b/ACE/bin/msvc_cidlc.pl new file mode 100755 index 00000000000..3d7283b3385 --- /dev/null +++ b/ACE/bin/msvc_cidlc.pl @@ -0,0 +1,151 @@ +# $Id$ +# Win32 auto_compile script. +if (!$ENV{CIAO_ROOT}) { + $CIAO_ROOT = getcwd ()."TAO\CIAO\\"; + warn "CIAO_ROOT not defined, defaulting to CIAO_ROOT=$CIAO_ROOT"; +} +else { + $ACE_ROOT = $ENV{ACE_ROOT}; + $CIAO_ROOT = $ENV{CIAO_ROOT}; +} + +use lib "$ENV{ACE_ROOT}/bin"; + +use File::Find; +use PerlACE::Run_Test; +use Cwd; + +@directories = (); + +$debug = 0; +$verbose = 0; +$print_status = 0; +$Ignore_errors = 0; # By default, bail out if an error occurs. +$Build_All = 1; +$Build_Cmd = "/BUILD"; +$use_custom_dir = 0; +$useenv = ''; +$vc7 = 0; +$Build_Debug = 1; + +# Build +sub Build ($$) +{ + my ($project, $config) = @_; + + if ($debug == 1) { + print "$project\n"; + return 0; + } + else { + print "Auto_compiling $project : $config\n"; + + print "Building $project $config\n" if $verbose; + + return system ("msdev.com $project /MAKE \"$config\" $Build_Cmd $useenv"); + } +} + +# Build +sub Build_VC7 ($$) +{ + my ($project, $config) = @_; + + if ($debug == 1) { + print "$project\n"; + return 0; + } + else { + print "Auto_compiling $project : $config\n"; + + print "Building $project $config\n" if $verbose; + + return system ("devenv.com $project $Build_Cmd $config $useenv"); + } +} + + + +sub Find_Sln (@) +{ + my (@dir) = @_; + @array = (); + + sub wanted_sln { + $array[++$#array] = + $File::Find::name if ($File::Find::name =~ /\.sln$/i); + } + + find (\&wanted_sln, @dir); + + print "List of sln's \n" if ($verbose == 1); + return @array; +} + +sub Build_All () +{ + my @configurations = Find_Sln (@directories); + + print STDERR "Building selected projects\n" if ($print_status == 1); + print "\nmsvc_cidlc: Building selected projects\n"; + + $count = 0; + foreach $c (@configurations) { + print STDERR "Configuration ".$count++." of ".$#configurations."\n" if ($print_status == 1); + if ($Build_Debug) { + $Status = Build_VC7 ($c, "debug"); + return if $Status != 0 && !$Ignore_errors; + } + } + print STDERR "ERROR: No configurations have been build\n" if ($count == 0); +} + + +## Parse command line argument +while ( $#ARGV >= 0 && $ARGV[0] =~ /^(-|\/)/ ) +{ + if ($ARGV[0] =~ '-vc7') { # Use VC7 project and solution files. + print "Using VC7 files\n" if ( $verbose ); + $vc7 = 1; + $proj_ext = '.vcproj'; + } + elsif ($ARGV[0] =~ '-vc8') { # Use VC8 project and solution files. + print "Using VC8 files\n" if ( $verbose ); + $vc7 = 1; # VC8 is like VC7 + $proj_ext = '.vcproj'; + } + elsif ($ARGV[0] =~ '-v') { # verbose mode + $verbose = 1; + } + elsif ($ARGV[0] =~ '-s') { # status messages + $print_status = 1; + } + elsif ($ARGV[0] =~ '-clean') { # Clean + print "Cleaning all\n" if ( $verbose ); + $Build_Cmd = "/CLEAN"; + } + elsif ($ARGV[0] =~ '-(\?|h)') { # Help information + print "Options\n"; + print "-vc7 = Use MSVC 7 toolset\n"; + print "-vc8 = Use MSVC 8 toolset\n"; + print "-clean = Clean\n"; + exit; + } + else { + warn "$0: unknown option $ARGV[0]\n"; + die -1; + } + shift; +} + +if ($#directories < 0) { + print "Using VC7 files\n" if ( $verbose ); + push @directories, ("$CIAO_ROOT\\CIDLC"); +} + +print "msvc_cidlc: Begin\n"; +print STDERR "Beginning CIDLC Build\n" if ($print_status == 1); +Build_All (); + +print "msvc_cidlc: End\n"; +print STDERR "End\n" if ($print_status == 1); |