summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authormichel_j <michel_j@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-23 01:30:37 +0000
committermichel_j <michel_j@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-08-23 01:30:37 +0000
commitd6173b9e003b0c115987fcbed352bb35911e39f0 (patch)
treeac5f04218739d810813ca795b79ad0de6db13b81 /bin
parentc7d54253bee42d7d49637e1ac5a4f58cf4ca1031 (diff)
downloadATCD-d6173b9e003b0c115987fcbed352bb35911e39f0.tar.gz
Fri Aug 22 20:10:41 UTC 2003 Justin Michel <michel_j@ociweb.com>
Diffstat (limited to 'bin')
-rw-r--r--bin/MakeProjectCreator/config/acedefaults.mpb7
-rw-r--r--bin/MakeProjectCreator/config/openssl.mpb15
-rw-r--r--bin/MakeProjectCreator/config/ssl.mpb7
-rw-r--r--bin/MakeProjectCreator/modules/ProjectCreator.pm24
-rw-r--r--bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm18
-rw-r--r--bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm27
-rw-r--r--bin/MakeProjectCreator/modules/VC7ProjectCreator.pm34
-rw-r--r--bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm38
-rw-r--r--bin/MakeProjectCreator/modules/WorkspaceCreator.pm41
-rw-r--r--bin/MakeProjectCreator/templates/bor.mpd8
-rw-r--r--bin/MakeProjectCreator/templates/vc7.mpd75
11 files changed, 142 insertions, 152 deletions
diff --git a/bin/MakeProjectCreator/config/acedefaults.mpb b/bin/MakeProjectCreator/config/acedefaults.mpb
index 676857a6317..f316f344eeb 100644
--- a/bin/MakeProjectCreator/config/acedefaults.mpb
+++ b/bin/MakeProjectCreator/config/acedefaults.mpb
@@ -1,10 +1,5 @@
-project: qt, zzip, openssl {
+project: qt, zzip {
staticflags += ACE_AS_STATIC_LIBS
includes += $(ACE_ROOT)
libpaths += $(ACE_ROOT)/lib
-
- // The following is a temporary workaround so that mpc-generated projects
- // can work with an ACE/TAO that was built without mpc. This should be
- // removed as soon as MPC is used for all project generation.
- // libpaths += $(ACE_ROOT)/ace $(ACE_ROOT)/ace/QoS $(ACE_ROOT)/ace/SSL $(ACE_ROOT)/ACEXML/common $(ACE_ROOT)/ACEXML/parser/parser $(TAO_ROOT)/orbsvcs/IFR_Service $(TAO_ROOT)/orbsvcs/orbsvcs $(TAO_ROOT)/tao $(TAO_ROOT)/tao/BiDir_GIOP $(TAO_ROOT)/tao/Domain $(TAO_ROOT)/tao/DynamicAny $(TAO_ROOT)/tao/DynamicInterface $(TAO_ROOT)/tao/IFR_Client $(TAO_ROOT)/tao/IORManipulation $(TAO_ROOT)/tao/IORTable $(TAO_ROOT)/tao/Messaging $(TAO_ROOT)/tao/Messaging $(TAO_ROOT)/tao/PortableServer $(TAO_ROOT)/tao/RTCORBA $(TAO_ROOT)/tao/RTPortableServer $(TAO_ROOT)/tao/SmartProxies $(TAO_ROOT)/tao/Strategies $(TAO_ROOT)/tao/TypeCodeFactory $(TAO_ROOT)/TAO_IDL $(TAO_ROOT)/orbsvcs/orbsvcs/ETCL
}
diff --git a/bin/MakeProjectCreator/config/openssl.mpb b/bin/MakeProjectCreator/config/openssl.mpb
index 04313394a02..876750f80c6 100644
--- a/bin/MakeProjectCreator/config/openssl.mpb
+++ b/bin/MakeProjectCreator/config/openssl.mpb
@@ -1,14 +1,17 @@
-feature(ssl) {
-// When all of ACE and TAO are switched over to MPC, uncomment the
-// following lines and remove this comment.
-// includes += $(SSL_ROOT)/include
-// libpaths += $(SSL_ROOT)/lib
-
+// openssl is a completely different feature than ssl.
+// Currently ssl uses openssl, and openssl is enabled by
+// default. If we ever add a new ssl library, then you
+// would likely enable only one ssl library feature.
+feature(openssl) {
specific(borland, nmake, em3, vc6, vc7, vc71) {
lit_libs += libeay32 ssleay32
+ includes += $(SSL_ROOT)/inc32
+ libpaths += $(SSL_ROOT)/out32dll
}
specific(gnuace, make) {
lit_libs += ssl crypto
+ includes += $(SSL_ROOT)/include
+ libpaths += $(SSL_ROOT)/lib
}
}
diff --git a/bin/MakeProjectCreator/config/ssl.mpb b/bin/MakeProjectCreator/config/ssl.mpb
index 4e7373191c9..8b9cfe673e2 100644
--- a/bin/MakeProjectCreator/config/ssl.mpb
+++ b/bin/MakeProjectCreator/config/ssl.mpb
@@ -1,6 +1,9 @@
-project : acelib {
+// In the future, other ssl libraries could be supported
+// by creating a new xyzssl.mpb similar to openssl.mpb.
+// You would then derive the following project from this base.
+project : acelib, openssl {
after += SSL
libs += ACE_SSL
requires += ssl
- ssl = 1
+ macros += ACE_HAS_SSL=1
}
diff --git a/bin/MakeProjectCreator/modules/ProjectCreator.pm b/bin/MakeProjectCreator/modules/ProjectCreator.pm
index 753209db4cf..9b12a2caabb 100644
--- a/bin/MakeProjectCreator/modules/ProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/ProjectCreator.pm
@@ -2076,7 +2076,7 @@ sub write_project {
my($self) = shift;
my($status) = 1;
my($error) = '';
- my($name) = $self->transform_file_name($self->project_file_name());
+ my($file_name) = $self->transform_file_name($self->project_file_name());
my($progress) = $self->get_progress_callback();
if (defined $progress) {
@@ -2089,17 +2089,17 @@ sub write_project {
## Writing the non-static file so set it to 0
if ($self->get_dynamic()) {
$self->{'writing_type'} = 0;
- ($status, $error) = $self->write_output_file($name);
+ ($status, $error) = $self->write_output_file($file_name);
}
if ($status &&
$self->get_static() && $self->separate_static_project()) {
- $name = $self->transform_file_name(
+ $file_name = $self->transform_file_name(
$self->static_project_file_name());
## Writing the static file so set it to 1
$self->{'writing_type'} = 1;
- ($status, $error) = $self->write_output_file($name);
+ ($status, $error) = $self->write_output_file($file_name);
}
}
}
@@ -2225,7 +2225,7 @@ sub update_project_info {
## If we haven't seen this value yet, put it on the array
if (!defined $self->{'project_info_hash_table'}->{"@narr $value"}) {
$self->{'project_info_hash_table'}->{"@narr $value"} = 1;
- $self->save_project_value("@narr", $value);
+ #$self->save_project_value("@narr", $value);
push(@$arr, $value);
}
@@ -2355,20 +2355,6 @@ sub get_default_element_name {
# Virtual Methods To Be Overridden
# ************************************************************
-sub specific_lookup {
- #my($self) = shift;
- #my($key) = shift;
- return undef;
-}
-
-
-sub save_project_value {
- #my($self) = shift;
- #my($name) = shift;
- #my($value) = shift;
-}
-
-
sub translate_value {
my($self) = shift;
my($key) = shift;
diff --git a/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm
index cbb1cfe80bf..92ac7e8866b 100644
--- a/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm
@@ -46,6 +46,10 @@ sub pre_workspace {
$crlf;
}
+sub allow_duplicates {
+ my($self) = shift;
+ return 0;
+}
sub write_comps {
my($self) = shift;
@@ -53,19 +57,10 @@ sub write_comps {
my($projects) = $self->get_projects();
my($pjs) = $self->get_project_info();
my($crlf) = $self->crlf();
- my(%names) = ();
- my($dupfound) = 0;
foreach my $project (@$projects) {
my($name) = $$pjs{$project}->[0];
my($deps) = $self->get_validated_ordering($project);
- if (defined $names{$name}) {
- ## Having duplicate project names is an error in a VC6 Workspace.
- ++$dupfound;
- }
- else {
- $names{$name} = 1;
- }
print $fh "###############################################################################$crlf" .
$crlf .
@@ -94,11 +89,6 @@ sub write_comps {
print $fh "}}}$crlf$crlf";
}
- if ($dupfound > 0) {
- print "WARNING: $dupfound duplicate project" .
- ($dupfound == 1 ? '' : 's') .
- " found. This workspace will not load properly.\n";
- }
}
diff --git a/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm
index 3d15b1ba472..8f9d499956e 100644
--- a/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/VC71WorkspaceCreator.pm
@@ -38,19 +38,22 @@ sub print_inner_project {
my($gen) = shift;
my($pguid) = shift;
my($deps) = shift;
+ my($project_name) = shift;
+ my($name_to_guid_map) = shift;
- if (defined $deps && $deps ne '') {
- my($crlf) = $self->crlf();
- print $fh "\tProjectSection(ProjectDependencies) = postProject$crlf";
- my($darr) = $self->create_array($deps);
- foreach my $dep (@$darr) {
- my($val) = $gen->specific_lookup($dep);
- if (defined $val && $pguid ne $val) {
- print $fh "\t\t{$val} = {$val}$crlf";
+ my($crlf) = $self->crlf();
+ print $fh "\tProjectSection(ProjectDependencies) = postProject$crlf";
+ my($darr) = $self->create_array($deps);
+ foreach my $dep (@$darr) {
+ ## Avoid cirular dependencies
+ if ($project_name ne $dep) {
+ my($guid) = $name_to_guid_map->{$dep};
+ if (defined $guid) {
+ print $fh "\t\t{$guid} = {$guid}$crlf";
}
}
- print $fh "\tEndProjectSection$crlf";
}
+ print $fh "\tEndProjectSection$crlf";
}
@@ -66,12 +69,6 @@ sub print_configs {
sub print_dependencies {
- #my($self) = shift;
- #my($fh) = shift;
- #my($gen) = shift;
- #my($list) = shift;
- #my($pjs) = shift;
-
## These are done in the print_inner_project method
}
diff --git a/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm b/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm
index bf18200244b..6be9b130f17 100644
--- a/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm
+++ b/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm
@@ -29,32 +29,20 @@ sub file_sorter {
return lc($left) cmp lc($right);
}
-
-sub specific_lookup {
+sub translate_value {
my($self) = shift;
- my($tag) = shift;
- my($val) = undef;
-
- if (defined $self->{'guid_names'} &&
- defined $self->{'guid_names'}->{$tag}) {
- $val = $self->{'guid_names'}->{$tag};
- }
-
- return $val;
-}
-
-
-sub save_project_value {
- my($self) = shift;
- my($name) = shift;
- my($value) = shift;
-
- if ($name eq 'guid') {
- if (!defined $self->{'guid_names'}) {
- $self->{'guid_names'} = {};
+ my($key) = shift;
+ my($val) = shift;
+
+ if ($key eq 'after' && $val ne '') {
+ my($arr) = $self->create_array($val);
+ $val = '';
+ foreach my $entry (@$arr) {
+ $val .= '"' . $entry . '" ';
}
- $self->{'guid_names'}->{$self->project_file_name()} = $value;
+ $val =~ s/\s+$//;
}
+ return $val;
}
diff --git a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm
index 146a775d033..a1161200cd9 100644
--- a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm
@@ -22,6 +22,10 @@ use vars qw(@ISA);
# Subroutine Section
# ************************************************************
+sub allow_duplicates {
+ my($self) = shift;
+ return 0;
+}
sub crlf {
my($self) = shift;
@@ -51,6 +55,7 @@ sub print_inner_project {
#my($gen) = shift;
#my($pguid) = shift;
#my($deps) = shift;
+ #my($name) = shift;
}
@@ -76,18 +81,26 @@ sub print_dependencies {
my($pjs) = shift;
my($crlf) = $self->crlf();
+ ## I hate to add yet another loop through all the projects, but
+ ## we must have some way to map plain project names to guids.
+ my(%name_to_guid_map) = ();
+ foreach my $project(@$list) {
+ my($name, $deps, $guid) = @{$$pjs{$project}};
+ $name_to_guid_map{$name} = $guid;
+ }
+
## Project Dependencies
print $fh "\tGlobalSection(ProjectDependencies) = postSolution$crlf";
foreach my $project (@$list) {
- my($name, $rawdeps, $pguid) = @{$$pjs{$project}};
+ my($name, $rawdeps, $project_guid) = @{$$pjs{$project}};
my($deps) = $self->get_validated_ordering($project);
if (defined $deps && $deps ne '') {
my($darr) = $self->create_array($deps);
my($i) = 0;
foreach my $dep (@$darr) {
- my($val) = $gen->specific_lookup($dep);
- if (defined $val && $pguid ne $val) {
- print $fh "\t\t{$pguid}.$i = {$val}$crlf";
+ my($guid) = $name_to_guid_map{$dep};
+ if (defined $guid && $guid ne $project_guid) {
+ print $fh "\t\t{$project_guid}.$i = {$guid}$crlf";
$i++;
}
}
@@ -102,22 +115,27 @@ sub write_comps {
my($fh) = shift;
my($gen) = shift;
my($projects) = $self->get_projects();
- my($guid) = '8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942';
+ my($vc7guid) = '8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942';
my($pjs) = $self->get_project_info();
my(@list) = $self->sort_dependencies($projects, $pjs);
my($crlf) = $self->crlf();
- ## $guid above is the VC7 Project GUID. It should not change.
+ ## I hate to add yet another loop through all the projects, but
+ ## we must have some way to map plain project names to guids.
+ my(%name_to_guid_map) = ();
+ foreach my $project(sort @list) {
+ my($name, $deps, $guid) = @{$$pjs{$project}};
+ $name_to_guid_map{$name} = $guid;
+ }
## Project Information
foreach my $project (sort @list) {
- my($name, $rawdeps, $pguid) = @{$$pjs{$project}};
+ my($name, $rawdeps, $guid) = @{$$pjs{$project}};
my($deps) = $self->get_validated_ordering($project);
-
## Convert all /'s to \
my($cpy) = $self->slash_to_backslash($project);
- print $fh "Project(\"{$guid}\") = \"$name\", \"$cpy\", \"{$pguid}\"$crlf";
- $self->print_inner_project($fh, $gen, $pguid, $deps);
+ print $fh "Project(\"{$vc7guid}\") = \"$name\", \"$cpy\", \"{$guid}\"$crlf";
+ $self->print_inner_project($fh, $gen, $guid, $deps, $name, \%name_to_guid_map);
print $fh "EndProject$crlf";
}
diff --git a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm
index 4ed23b3db8e..89618c48ea1 100644
--- a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm
+++ b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm
@@ -468,22 +468,18 @@ sub write_workspace {
my($addfile) = shift;
my($status) = 1;
my($error) = '';
+ my($duplicates) = 0;
if ($self->get_toplevel()) {
if ($addfile) {
- ## NOTE: If support for VC6 is ever removed, then we can remove
- ## this block of code. So far, VC6 is the only tool we support
- ## that can not handle projects that exist in different directories
- ## but have the same name.
+ ## VC6 is the only tool that currently cannot work with duplicate names, but
+ ## duplicates really don't make sense for anything but Makefile-style projects.
my(%names) = ();
foreach my $project (@{$self->{'projects'}}) {
my($name) = $self->{'project_info'}->{$project}->[0];
if (defined $names{$name}) {
- ## Having duplicate project names is an error in a VC6 Workspace.
- ## We will create the project, but we will warn the user that
- ## the project has duplicate names.
- print "WARNING: A duplicate project named '$name' " .
- "has already been added.\n";
+ ++$duplicates;
+ print "WARNING: Duplicate project '$name'.\n";
}
else {
$names{$name} = 1;
@@ -493,8 +489,22 @@ sub write_workspace {
else {
$self->{'per_project_workspace_name'} = 1;
}
+
my($name) = $self->transform_file_name($self->workspace_file_name());
- if (defined $self->{'projects'}->[0]) {
+
+ my($abort_creation) = 0;
+
+ if ($duplicates > 0 && ! $self->allow_duplicates()) {
+ print "WARNING: Duplicates not allowed.\n";
+ $abort_creation = 1;
+ } else {
+ if (! defined $self->{'projects'}->[0]) {
+ print "WARNING: No projects were created.\n";
+ $abort_creation = 1;
+ }
+ }
+
+ if (! $abort_creation) {
my($fh) = new FileHandle();
my($dir) = dirname($name);
@@ -548,10 +558,8 @@ sub write_workspace {
}
}
}
- }
- else {
- print "WARNING: No projects were created.\n" .
- " Workspace $name has not been created.\n";
+ } else {
+ print " Workspace $name has not been created.\n";
}
if (!$addfile) {
$self->{'per_project_workspace_name'} = undef;
@@ -1048,6 +1056,11 @@ sub get_validated_ordering {
# Virtual Methods To Be Overridden
# ************************************************************
+sub allow_duplicates {
+ my($self) = shift;
+ return 1;
+}
+
sub workspace_file_name {
#my($self) = shift;
return '';
diff --git a/bin/MakeProjectCreator/templates/bor.mpd b/bin/MakeProjectCreator/templates/bor.mpd
index a1ef5bb5f49..cc033c17cb0 100644
--- a/bin/MakeProjectCreator/templates/bor.mpd
+++ b/bin/MakeProjectCreator/templates/bor.mpd
@@ -1,13 +1,5 @@
# Makefile for building the <%if(exename)%><%exename%> exe<%endif%><%if(sharedname)%><%sharedname%> library<%endif%> with Borland C++ Builder
-<%if(ssl)%>
-!ifdef SSL_ROOT
-<%endif%>
-NAME = <%if(exename)%><%exename%><%endif%><%if(sharedname)%><%sharedname%><%endif%>
-<%if(ssl)%>
-!endif
-<%endif%>
-
<%if(idl_files)%>
TAO_IDL = $(CORE_BINDIR)\tao_idl -g $(CORE_BINDIR)\gperf.exe
diff --git a/bin/MakeProjectCreator/templates/vc7.mpd b/bin/MakeProjectCreator/templates/vc7.mpd
index fe547b05150..51c97474d20 100644
--- a/bin/MakeProjectCreator/templates/vc7.mpd
+++ b/bin/MakeProjectCreator/templates/vc7.mpd
@@ -14,8 +14,8 @@
<%foreach(configurations)%>
<Configuration
Name="<%configuration%>|<%platform%>"
- OutputDirectory=".\<%if(type_is_dynamic)%><%libout%><%else%><%output_dir%><%endif%>"
- IntermediateDirectory=".\<%intermediate_dir%>\<%noextension(project_file)%>"
+ OutputDirectory="<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%><%else%><%if(type_is_static)%><%libout%><%else%><%if(install)%><%install%><%else%><%output_dir%><%endif%><%endif%><%endif%>"
+ IntermediateDirectory="<%intermediate_dir%>/<%noextension(project_file)%>"
ConfigurationType="<%configuration_type("2")%>"
UseOfMFC="<%use_mfc("0")%>"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
@@ -24,61 +24,66 @@
<%if(optimization)%>
Optimization="<%optimization%>"
<%endif%>
-<%if(!debug)%>
- InlineFunctionExpansion="<%inline("2")%>"
+<%if(OptimizeForProcessor)%>
+ Optimization="<%OptimizeForProcessor%>"
<%endif%>
AdditionalIncludeDirectories="<%foreach(includes)%><%include%><%fornotlast(",")%><%endfor%>"
- PreprocessorDefinitions="<%if(type_is_dynamic)%><%foreach(dynamicflags)%><%dynamicflag%>;<%endfor%><%endif%><%if(need_staticflags)%><%foreach(staticflags)%><%libflag%>;<%endfor%><%endif%><%if(pch_header)%><%foreach(pch_defines)%><%pch_define%>;<%endfor%><%endif%><%foreach(defines common_defines macros)%><%define%><%fornotlast(";")%><%endfor%>"
-<%if(!debug)%>
- StringPooling="<%string_pooling("TRUE")%>"
+ PreprocessorDefinitions="<%if(type_is_dynamic)%><%foreach(dynamicflags)%><%dynamicflag%>;<%endfor%><%endif%><%if(need_staticflags)%><%foreach(staticflags)%><%staticflag%>;<%endfor%><%endif%><%if(pch_header)%><%foreach(pch_defines)%><%pch_define%>;<%endfor%><%endif%><%foreach(defines common_defines macros)%><%define%><%fornotlast(";")%><%endfor%>"
+ MinimalRebuild="<%MinimalRebuild("FALSE")%>"
+ ExceptionHandling="TRUE"
+<%if(debug)%>
+ BasicRuntimeChecks="<%BasicRuntimeChecks("3")%>"
+<%endif%>
+<%if(StringPooling)%>
+ StringPooling="<%StringPooling%>"
<%endif%>
- RuntimeLibrary="<%runtime_library%>"
- EnableFunctionLevelLinking="TRUE"
+ RuntimeLibrary="<%if(debug)%><%runtime_library("3")%><%else%><%runtime_library("2")%><%endif%>"
+ BufferSecurityCheck="<%BufferSecurityCheck("TRUE")%>"
+ EnableFunctionLevelLinking="<%EnableFunctionLevelLinking("TRUE")%>"
+ TreatWChar_tAsBuiltInType="TRUE"
+ ForceConformanceInForLoopScope="TRUE"
RuntimeTypeInfo="<%rtti("TRUE")%>"
<%if(pch_header)%>
- UsePrecompiledHeader="3"
- PrecompiledHeaderThrough="<%pch_header%>"
<%if(pch_source)%>
- PrecompiledHeaderFile=".\<%intermediate_dir%>\<%noextension(project_file)%>\<%noextension(pch_source)%>.pch"
+ UsePrecompiledHeader="3"
+<%else%>
+ UsePrecompiledHeader="2"
<%endif%>
+ PrecompiledHeaderThrough="<%pch_header%>"
<%endif%>
- AssemblerListingLocation=".\<%intermediate_dir%>\<%noextension(project_file)%>"
- ObjectFile=".\<%intermediate_dir%>\<%noextension(project_file)%>\"
WarningLevel="<%warning_level("3")%>"
SuppressStartupBanner="TRUE"
- DebugInformationFormat="<%debug_format("3")%>"
- CompileAs="0"/>
+ Detect64BitPortabilityProblems="<%Detect64BitPortabilityProblems("FALSE")%>"
+ DebugInformationFormat="<%debug_format("3")%>"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- AdditionalOptions="/MACHINE:<%machine("I386")%>"
<%if(type_is_binary)%>
AdditionalDependencies="<%foreach(lit_libs)%><%lit_lib%>.lib <%endfor%><%foreach(libs defaultlibs)%><%lib%><%lib_modifier%>.lib<%fornotlast(" ")%><%endfor%>"
<%endif%>
- OutputFile="<%if(type_is_dynamic)%><%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%sharedname%><%lib_modifier%>.dll<%endif%><%if(exename)%><%if(install)%><%install%><%else%><%output_dir%><%endif%>\<%exename%>.exe<%endif%><%if(type_is_static)%><%libout%>\<%staticname%><%lib_modifier%>.lib<%endif%>"
+ OutputFile="$(OutDir)/<%if(type_is_dynamic)%><%sharedname%><%lib_modifier%>.dll<%else%><%if(type_is_static)%><%staticname%><%lib_modifier%>.lib<%else%><%exename%>.exe<%endif%><%endif%>"
Version="<%version("1.0")%>"
- LinkIncremental="<%incremental("1")%>"
+ LinkIncremental="<%LinkIncremental("1")%>"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="<%foreach(libpaths)%><%libpath%><%fornotlast(";")%><%endfor%>"
-<%if(debug)%>
GenerateDebugInformation="TRUE"
-<%endif%>
-<%if(pdb)%>
-<%if(sharedname)%>
- ProgramDatabaseFile="<%if(dllout)%><%dllout%><%else%><%libout%><%endif%>\<%sharedname%><%lib_modifier%>.pdb"
+<%if(type_is_dynamic)%>
+ ProgramDatabaseFile="$(OutDir)/<%sharedname%><%lib_modifier%>.pdb"
<%else%>
-<%if(exename)%>
- ProgramDatabaseFile="<%if(install)%><%install%><%else%><%output_dir%><%endif%>\<%exename%>.pdb"
-<%endif%>
+ <%if(type_is_binary)%>
+ ProgramDatabaseFile="$(OutDir)/<%exename%>.pdb"
+ <%endif%>
<%endif%>
+ SubSystem="<%subsystem("1")%>"
+<%if(!debug)%>
+ OptimizeReferences="<%optref("2")%>"
+ EnableCOMDATFolding="<%opticf("2")%>"
<%endif%>
<%if(type_is_dynamic)%>
- SubSystem="<%subsystem("2")%>"
- ImportLibrary="<%libout%>\<%sharedname%><%lib_modifier%>.lib"/>
-<%else%>
- SubSystem="<%subsystem("2")%>"/>
+ ImportLibrary="$(OutDir)/<%sharedname%><%lib_modifier%>.lib"
<%endif%>
+ />
<Tool
Name="VCMIDLTool"/>
<Tool
@@ -155,21 +160,21 @@
Description="Invoking IDL Compiler on <%basename(idl_file)%> located in <%dirname(idl_file)%>"
<%if(flag_overrides(idl_file, idlgendir))%>
CommandLine="PATH=%PATH%;<%idl_compiler_libs%>
-<%idl_compiler%> -o <%flag_overrides(idl_file, idlgendir)%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags%><%endif%> <%idl_file%>"
+<%idl_compiler%> -o <%flag_overrides(idl_file, idlgendir)%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags("-Sc")%><%endif%> <%idl_file%>"
Outputs="<%flag_overrides(idl_file, idlgendir)%>\<%basenoextension(idl_file)%>C.h;<%flag_overrides(idl_file, idlgendir)%>\<%basenoextension(idl_file)%>C.i;<%flag_overrides(idl_file, idlgendir)%>\<%basenoextension(idl_file)%>C.cpp;<%flag_overrides(idl_file, idlgendir)%>\<%basenoextension(idl_file)%>S.h;<%flag_overrides(idl_file, idlgendir)%>\<%basenoextension(idl_file)%>S.i;<%flag_overrides(idl_file, idlgendir)%>\<%basenoextension(idl_file)%>S.cpp"/>
<%else%>
<%if(idlgendir)%>
CommandLine="PATH=%PATH%;<%idl_compiler_libs%>
-<%idl_compiler%> -o <%idlgendir%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags%><%endif%> <%idl_file%>"
+<%idl_compiler%> -o <%idlgendir%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags("-Sc")%><%endif%> <%idl_file%>"
Outputs="<%idlgendir%>\<%basenoextension(idl_file)%>C.h;<%idlgendir%>\<%basenoextension(idl_file)%>C.i;<%idlgendir%>\<%basenoextension(idl_file)%>C.cpp;<%idlgendir%>\<%basenoextension(idl_file)%>S.h;<%idlgendir%>\<%basenoextension(idl_file)%>S.i;<%idlgendir%>\<%basenoextension(idl_file)%>S.cpp"/>
<%else%>
<%if(dirname_found)%>
CommandLine="PATH=%PATH%;<%idl_compiler_libs%>
-<%idl_compiler%> -o <%dirname(idl_file)%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags%><%endif%> <%idl_file%>"
+<%idl_compiler%> -o <%dirname(idl_file)%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags("-Sc")%><%endif%> <%idl_file%>"
Outputs="<%basenoextension(idl_file)%>C.h;<%basenoextension(idl_file)%>C.i;<%basenoextension(idl_file)%>C.cpp;<%basenoextension(idl_file)%>S.h;<%basenoextension(idl_file)%>S.i;<%basenoextension(idl_file)%>S.cpp"/>
<%else%>
CommandLine="PATH=%PATH%;<%idl_compiler_libs%>
-<%idl_compiler%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags%><%endif%> <%idl_file%>"
+<%idl_compiler%> <%if(flag_overrides(idl_file, idlflags))%><%flag_overrides(idl_file, idlflags)%><%else%><%idlflags("-Sc")%><%endif%> <%idl_file%>"
Outputs="<%noextension(idl_file)%>C.h;<%noextension(idl_file)%>C.i;<%noextension(idl_file)%>C.cpp;<%noextension(idl_file)%>S.h;<%noextension(idl_file)%>S.i;<%noextension(idl_file)%>S.cpp"/>
<%endif%>
<%endif%>