Skip to content
Snippets Groups Projects
fc-pregmod.proj 4.17 KiB
Newer Older
ezsh's avatar
ezsh committed
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="FinalHTML" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
ezsh's avatar
ezsh committed
	<Import Project="devTools\FC.targets" />
ezsh's avatar
ezsh committed
	<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>
ezsh's avatar
ezsh committed
	</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)" />
ezsh's avatar
ezsh committed
		<Message Text="ArchitectureSuffix: $(ArchitectureSuffix)" Importance="high" />
		<Message Text="TweeGoExe: $(TweeGoExe)" Importance="high" />
		<Message Text="PA: $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)" />
ezsh's avatar
ezsh committed
		<Message Text="Git found: $(GitExeFound)" Importance="high" />
		<Message Text="Git executable: $(GitExe)" Importance="high" />
		<Message Text="HEAD commit hash: $(GitHash)" Importance="high" />
ezsh's avatar
ezsh committed
    </Target>

	<Target Name="createDirs">
		<MakeDir Directories="$(OutputDirectory)\resources"/>
	</Target>

	<Target Name="JSModule" DependsOnTargets="createDirs;DisplayMessages">
		<ItemGroup>
			<jsScripts Include=".\js\**\*.js" /> <!-- will be sorted aphabetically -->
ezsh's avatar
ezsh committed
		</ItemGroup>
ezsh's avatar
ezsh committed
		<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"/>
ezsh's avatar
ezsh committed
	</Target>
	<Target Name="RemoveGeneratedFiles" DependsOnTargets="FindGit" Condition=" '$(GitExeFound)'" >
		<Delete Files="src/002-config/fc-version.js.commitHash.js"/>
ezsh's avatar
ezsh committed
	</Target>

	<Target Name="tmpOutput" DependsOnTargets="JSModule;InjectGitHash">
ezsh's avatar
ezsh committed
		<Exec Command="devTools\tweeGo\$(TweeGoExe) --module=$(OutputDirectory)\$(JSMoudleFileName) --head devTools\head.html -o $(OutputDirectory)\tmp.html src\" />
	</Target>

	<Target Name="FinalHTML" DependsOnTargets="tmpOutput;RemoveGeneratedFiles">
ezsh's avatar
ezsh committed
		<Delete Files="$(OutputDirectory)\$(JSMoudleFileName)" />
		<Move SourceFiles="$(OutputDirectory)\tmp.html" DestinationFiles="$(OutputDirectory)\FC_pregmod.html" />
	</Target>
ezsh's avatar
ezsh committed

	<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"/>

ezsh's avatar
ezsh committed
</Project>