Changing the way project types are defined... again

This commit is contained in:
Michael Becker 2014-12-05 13:47:40 -05:00
parent 1d6e8549c4
commit 6f78419056
3 changed files with 139 additions and 81 deletions

View File

@ -11,51 +11,79 @@
<Actions>
<Action TypeID="{EE505E05-F125-4718-BA0A-879C72B5125A}">
<!-- ExecutableAction -->
<FileName>$(MinGWPath)\g++.exe</FileName>
<Arguments>
<StringBuilder>
<Literal Value="-o &quot;" />
<Variable Name="OutputFileName" />
<Literal Value="&quot; " />
<ConditionalStatement>
<Conditions>
<Condition VariableName="OutputType" Comparison="EqualTo" Value="GraphicalApplication" />
</Conditions>
<TrueResult>
<Literal Value="-mwindows " />
</TrueResult>
</ConditionalStatement>
<ConditionalStatement>
<Conditions>
<Condition VariableName="IncludeFiles.Length" Comparison="GreaterThan" Value="0" />
</Conditions>
<TrueResult>
<VariableArray Name="IncludeFiles" Prefix="-I" Separator=" " />
</TrueResult>
</ConditionalStatement>
<ConditionalStatement>
<Conditions>
<Condition VariableName="LibraryPaths.Length" Comparison="GreaterThan" Value="0" />
</Conditions>
<TrueResult>
<VariableArray Name="LibraryPaths" Prefix="-L" Separator=" " />
</TrueResult>
</ConditionalStatement>
<ConditionalStatement>
<Conditions>
<Condition VariableName="LibraryReferences.Length" Comparison="GreaterThan" Value="0" />
</Conditions>
<TrueResult>
<VariableArray Name="LibraryReferences" Prefix="-l" Separator=" " />
</TrueResult>
</ConditionalStatement>
<VariableArray Name="ProjectFiles" Separator=" " />
</StringBuilder>
</Arguments>
<CommandLine>
<Conditional>
<Conditions>
<Condition Variable="OperatingSystemPlatform" Comparison="Equals" Value="Windows" />
</Conditions>
<TrueResult>
<GlobalVariableReference ID="MinGWPath" />
<PathSeparator />
<Literal Value="g++.exe" />
</TrueResult>
<FalseResult>
<Literal Value="g++" />
</FalseResult>
</Conditional>
<Literal Value=" -o &quot;" />
<ProjectVariableReference ID="OutputFileName" />
<Literal Value="&quot; " />
<Conditional>
<Conditions>
<Condition VariableName="ProjectTarget" Comparison="EqualTo" Value="winexe" />
</Conditions>
<TrueResult>
<Literal Value="-mwindows " />
</TrueResult>
</Conditional>
<Conditional>
<Conditions>
<Condition VariableName="ProjectTarget" Comparison="EqualTo" Value="library" />
</Conditions>
<TrueResult>
<Literal Value="--shared " />
</TrueResult>
</Conditional>
<Conditional>
<Conditions>
<Condition VariableName="IncludeFiles.Length" Comparison="GreaterThan" Value="0" />
</Conditions>
<TrueResult>
<VariableArray Name="IncludeFiles" Prefix="-I" Separator=" " />
</TrueResult>
</Conditional>
<Conditional>
<Conditions>
<Condition VariableName="LibraryPaths.Length" Comparison="GreaterThan" Value="0" />
</Conditions>
<TrueResult>
<VariableArray Name="LibraryPaths" Prefix="-L" Separator=" " />
</TrueResult>
</Conditional>
<Conditional>
<Conditions>
<Condition VariableName="LibraryReferences.Length" Comparison="GreaterThan" Value="0" />
</Conditions>
<TrueResult>
<VariableArray Name="LibraryReferences" Prefix="-l" Separator=" " />
</TrueResult>
</Conditional>
<VariableArray Name="ProjectFiles" Separator=" " />
</CommandLine>
</Action>
</Actions>
</Task>
</Tasks>
<ProjectVariables>
<ProjectVariable ID="ProjectTarget" Type="Selection">
<ValidValues>
<ValidValue Title="Console Executable" Value="exe" />
<ValidValue Title="GUI Executable" Value="winexe" />
<ValidValue Title="Class Library" Value="library" />
</ValidValues>
</ProjectVariable>
<ProjectVariable ID="OutputFileName" Type="File" />
</ProjectVariables>
</ProjectType>
</ProjectTypes>
</UniversalEditor>

View File

@ -4,37 +4,41 @@
<Information>
<Title>VB.NET Project</Title>
</Information>
<BuildActions>
<BuildAction ID="{8A5A000E-EA45-415F-86E4-2186808BD386}">
<Execute>
<Conditional>
<Conditions>
<Condition Variable="OperatingSystemPlatform" Comparison="Equals" Value="Windows" />
</Conditions>
<TrueResult>
<GlobalVariableReference ID="FrameworkPath" />
<PathSeparator />
<Literal Value="vbc.exe" />
</TrueResult>
<FalseResult>
<Literal Value="vbnc" />
</FalseResult>
</Conditional>
<Literal Value=" " />
<Literal Value="/target: " />
<ProjectVariableReference ID="ProjectTarget" />
<Literal Value="/out: " />
<ProjectVariableReference ID="OutputFileName" />
<Tasks>
<Task Title="Build">
<Actions>
<Action TypeID="{EE505E05-F125-4718-BA0A-879C72B5125A}">
<CommandLine>
<Conditional>
<Conditions>
<Condition Variable="OperatingSystemPlatform" Comparison="Equals" Value="Windows" />
</Conditions>
<TrueResult>
<GlobalVariableReference ID="FrameworkPath" />
<PathSeparator />
<Literal Value="vbc.exe" />
</TrueResult>
<FalseResult>
<Literal Value="vbnc" />
</FalseResult>
</Conditional>
<Literal Value=" /target:" />
<ProjectVariableReference ID="ProjectTarget" />
<Literal Value="/rootnamespace: " />
<ProjectVariableReference ID="RootNamespace" />
<ProjectReferenceList ArrayItemPrefix="/reference:" ArrayItemSeparator=" " />
<ProjectFileList ArrayItemSeparator=" " />
</Execute>
</BuildAction>
</BuildActions>
<Literal Value=" /out:&quot;" />
<ProjectVariableReference ID="OutputFileName" />
<Literal Value="&quot;" />
<Literal Value=" /rootnamespace:" />
<ProjectVariableReference ID="RootNamespace" />
<ProjectReferenceList ArrayItemPrefix="/reference:" ArrayItemSeparator=" " />
<ProjectFileList ArrayItemSeparator=" " />
</CommandLine>
</Action>
</Actions>
</Task>
</Tasks>
<ProjectVariables>
<ProjectVariable ID="ProjectTarget" Type="Selection">
<ValidValues>

View File

@ -9,20 +9,46 @@
<Tasks>
<Task Title="Build">
<Actions>
<Action TypeID="{EE505E05-F125-4718-BA0A-879C72B5125A}" >
<FileName>$(DotNetFrameworkPath)\v$(DotNetVersion)\csc.exe</FileName>
<Arguments>
<StringBuilder>
<Literal Value="/out:&quot;" />
<Variable Name="OutputFileName" />
<Literal Value="&quot; " />
<ProjectFiles Separator=" " />
</StringBuilder>
</Arguments>
<Action TypeID="{EE505E05-F125-4718-BA0A-879C72B5125A}">
<CommandLine>
<Conditional>
<Conditions>
<Condition Variable="OperatingSystemPlatform" Comparison="Equals" Value="Windows" />
</Conditions>
<TrueResult>
<GlobalVariableReference ID="FrameworkPath" />
<PathSeparator />
<Literal Value="csc.exe" />
</TrueResult>
<FalseResult>
<Literal Value="csc" />
</FalseResult>
</Conditional>
<Literal Value=" /target:" />
<ProjectVariableReference ID="ProjectTarget" />
<Literal Value=" /out:&quot;" />
<ProjectVariableReference ID="OutputFileName" />
<Literal Value="&quot; " />
<ProjectFiles Separator=" " />
</CommandLine>
</Action>
</Actions>
</Task>
</Tasks>
<ProjectVariables>
<ProjectVariable ID="ProjectTarget" Type="Selection">
<ValidValues>
<ValidValue Title="Console Executable" Value="exe" />
<ValidValue Title="GUI Executable" Value="winexe" />
<ValidValue Title="Class Library" Value="library" />
<ValidValue Title="Module" Value="module" />
<ValidValue Title="AppContainer Executable" Value="appcontainerexe" />
<ValidValue Title="Windows Metadata object" Value="winmdobj" />
</ValidValues>
</ProjectVariable>
<ProjectVariable ID="OutputFileName" Type="File" />
<ProjectVariable ID="RootNamespace" Type="String" />
</ProjectVariables>
</ProjectType>
</ProjectTypes>
</UniversalEditor>