Newer
Older
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="FinalHTML" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputDirectory>.\bin\</OutputDirectory>
<JSMoudleFileName>fc.js</JSMoudleFileName>
</PropertyGroup>
<PropertyGroup Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)' == 'X64' ">
<ArchitectureSuffix>64</ArchitectureSuffix>
</PropertyGroup>
<PropertyGroup Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)' == 'X86' ">
<ArchitectureSuffix>86</ArchitectureSuffix>
</PropertyGroup>
<PropertyGroup Condition=" '$([MSBuild]::IsOsPlatform(Windows))' ">
<TweeGoExe>tweego_win$(ArchitectureSuffix).exe</TweeGoExe>
</PropertyGroup>
<PropertyGroup Condition=" '$([MSBuild]::IsOsPlatform(Linux))' ">
<TweeGoExe>tweego_nix$(ArchitectureSuffix)</TweeGoExe>
</PropertyGroup>
<PropertyGroup Condition=" '$([MSBuild]::IsOsPlatform(OSX))' ">
<TweeGoExe>tweego_osx$(ArchitectureSuffix)</TweeGoExe>
</PropertyGroup>
<Target Name="CollectGitInfo" DependsOnTargets="FindGit">
<Exec Command="$(GitExe) rev-parse --short HEAD" ConsoleToMsBuild="true" EchoOff="true">
<Output TaskParameter="ConsoleOutput" PropertyName="GitHash" />
</Exec>
</Target>
<Target Name="DisplayMessages" DependsOnTargets="CollectGitInfo">
<Message Text="MSBuildProjectDirectory: $(MSBuildProjectDirectory)" />
<Message Text="ArchitectureSuffix: $(ArchitectureSuffix)" Importance="high" />
<Message Text="TweeGoExe: $(TweeGoExe)" Importance="high" />
<Message Text="PA: $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)" />
<Message Text="Git found: $(GitExeFound)" Importance="high" />
<Message Text="Git executable: $(GitExe)" Importance="high" />
<Message Text="HEAD commit hash: $(GitHash)" Importance="high" />
<Target Name="createDirs">
<MakeDir Directories="$(OutputDirectory)\resources"/>
</Target>
<Target Name="JSModule" DependsOnTargets="createDirs;DisplayMessages">
<ItemGroup>
<jsScripts Include=".\js\**\*.js" /> <!-- will be sorted aphabetically -->
<ConcatFiles Inputs="@(jsSCripts)" BaseDir="$(MSBuildProjectDirectory)" Output="$(OutputDirectory)\$(JSMoudleFileName)"/>
</Target>
<Target Name="InjectGitHash" DependsOnTargets="CollectGitInfo" Condition=" '$(GitExeFound)'" >
<WriteLinesToFile
File="src/002-config/fc-version.js.commitHash.js"
Lines="App.Version.commitHash = '$(GitHash)'%3B"
Overwrite="true"
Encoding="UTF-8"/>
<Target Name="RemoveGeneratedFiles" DependsOnTargets="FindGit" Condition=" '$(GitExeFound)'" >
<Delete Files="src/002-config/fc-version.js.commitHash.js"/>
<Target Name="tmpOutput" DependsOnTargets="JSModule;InjectGitHash">
<Exec Command="devTools\tweeGo\$(TweeGoExe) --module=$(OutputDirectory)\$(JSMoudleFileName) --head devTools\head.html -o $(OutputDirectory)\tmp.html src\" />
</Target>
<Target Name="FinalHTML" DependsOnTargets="tmpOutput;RemoveGeneratedFiles">
<Delete Files="$(OutputDirectory)\$(JSMoudleFileName)" />
<Move SourceFiles="$(OutputDirectory)\tmp.html" DestinationFiles="$(OutputDirectory)\FC_pregmod.html" />
</Target>
<Target Name="JavaSanityCheck">
<Exec Command="java -jar .\devTools\javaSanityCheck\SanityCheck.jar" />
</Target>
<!-- Twine targets -->
<Target Name="TwineCSS">
<ItemGroup>
<cssFiles Include=".\src\**\*.css" /> <!-- will be sorted aphabetically -->
</ItemGroup>
<ConcatFiles Inputs="@(cssFiles)" BaseDir="$(MSBuildProjectDirectory)" Output="$(MSBuildProjectDirectory)\devNotes\twine CSS.txt"/>
</Target>
<Target Name="TwineJS">
<ItemGroup>
<jsFiles Include=".\js\**\*.js;.\src\**\*.js" Exclude=".\src\art\assistantArt.js"/> <!-- will be sorted aphabetically -->
</ItemGroup>
<ConcatFiles Inputs="@(jsFiles)" BaseDir="$(MSBuildProjectDirectory)" Output="$(MSBuildProjectDirectory)\devNotes\twine JS.raw"/>
<StripComments
InputFilename="$(MSBuildProjectDirectory)\devNotes\twine JS.raw"
OutputFilename="$(MSBuildProjectDirectory)\devNotes\twine JS.txt"
/>
</Target>
<Target Name="Twine" DependsOnTargets="TwineCSS;TwineJS"/>