Skip to content

Commit

Permalink
Revert "[Build] Improve performance of GenDummy (Samsung#270)" (Samsu…
Browse files Browse the repository at this point in the history
…ng#281)

This reverts commit 3347e33.
  • Loading branch information
JoonghyunCho authored and sung-su committed Jun 5, 2018
1 parent ff4a9bb commit a9524b6
Show file tree
Hide file tree
Showing 25 changed files with 1,804 additions and 30 deletions.
62 changes: 62 additions & 0 deletions build.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
@if not defined _echo @echo off
setlocal

if /I [%1] == [] goto Usage
if /I [%1] == [build] goto ModuleBuild
if /I [%1] == [full] goto FullBuild
if /I [%1] == [dummy] goto DummyBuild
if /I [%1] == [pack] goto Pack
if /I [%1] == [clean] goto Clean

goto :EOF

:Usage
echo Usage: %0 [command] [args]
echo Commands:
echo build [module] Build a specific module
echo full Build all modules in src/ directory
echo dummy Generate dummy assemblies of all modules
echo pack [version] Make a NuGet package with build artifacts
echo clean Clean all artifacts
echo.
goto :EOF

:ModuleBuild
if /I [%2] == [] (
echo No module specified.
exit /b !ERRORLEVEL!
)
call dotnet msbuild %~dp0build\build.proj /nologo /t:restore /p:Project=%2
call dotnet msbuild %~dp0build\build.proj /nologo /t:build /p:Project=%2
goto :EOF

:FullBuild
call dotnet msbuild %~dp0build\build.proj /nologo /t:clean
call dotnet msbuild %~dp0build\build.proj /nologo /t:restore
call dotnet msbuild %~dp0build\build.proj /nologo /t:build
goto :EOF

:DummyBuild
call dotnet msbuild %~dp0build\build.proj /nologo /t:dummy
call dotnet msbuild %~dp0build\build.proj /nologo /t:afterdummy
goto :EOF

:Pack
set VERSION=%2
call :GetUnixTime TIMESTAMP
if /I [%VERSION%] == [] set VERSION=5.0.0-local-%TIMESTAMP%
call dotnet msbuild %~dp0build\build.proj /nologo /t:pack /p:Version=%VERSION%
goto :EOF

:Clean
call dotnet msbuild %~dp0build\build.proj /nologo /t:clean
goto :EOF

:GetUnixTime
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
set %%x)
set /a z=(14-100%Month%%%100)/12, y=10000%Year%%%10000-z
set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
endlocal & set "%1=%ut%" & goto :EOF
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ cmd_dummy_build() {
if [ -d /nuget ]; then
NUGET_SOURCE_OPT="/p:RestoreSources=/nuget"
fi
$RUN_BUILD /t:restore $NUGET_SOURCE_OPT
$RUN_BUILD /t:dummy $NUGET_SOURCE_OPT
$RUN_BUILD /t:afterdummy
}

cmd_pack() {
Expand Down
44 changes: 35 additions & 9 deletions build/build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
Properties="Configuration=$(Configuration)"
BuildInParallel="true"
UseResultsCache="true"
Targets="Rebuild" />
Targets="Build" />

<MSBuild Projects="@(ProjectToBuild)"
Properties="Configuration=$(Configuration)"
Expand Down Expand Up @@ -109,19 +109,45 @@
==============
Generate dummy assemblies of all projects.
-->
<Target Name="Dummy">
<Target Name="Dummy" DependsOnTargets="GenerateDummyProject">

<MSBuild Projects="@(ProjectToBuild)"
Properties="Configuration=$(Configuration);IsDummyBuild=True"
<ItemGroup>
<DummyProjectToBuild Include="$(PublicDummyProjectDir)**\*.csproj" />
<DummyProjectToBuild Include="$(InternalDummyProjectDir)**\*.csproj" />
</ItemGroup>

<MSBuild Projects="@(DummyProjectToBuild)"
Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
BuildInParallel="false"
Targets="Restore" />

<MSBuild Projects="@(DummyProjectToBuild)"
Properties="Configuration=$(Configuration);WarningLevel=0;OutDir=$(OutputDummyDir);ProduceReferenceAssembly=False"
BuildInParallel="true"
UseResultsCache="true"
Targets="Rebuild" />
Targets="Build" />

<MSBuild Projects="@(ProjectToBuild)"
Properties="Configuration=$(Configuration)"
BuildInParallel="false"
Targets="CopyToDummyArtifactsDirectory" />
</Target>


<Target Name="GenerateDummyProject" Inputs="@(ProjectToBuild)" Outputs="%(Filename)" >

<PropertyGroup>
<GeneratedDummyAssembly>$(OutputDummyDir)%(ProjectToBuild.Filename).dll</GeneratedDummyAssembly>
<ClonedProjectsDir Condition="'%(ProjectToBuild.Visibility)' == 'Public'" >$(PublicDummyProjectDir)</ClonedProjectsDir>
<ClonedProjectsDir Condition="'%(ProjectToBuild.Visibility)' == 'Internal'" >$(InternalDummyProjectDir)</ClonedProjectsDir>
</PropertyGroup>

<Message Text="[GenDummy] %(ProjectToBuild.Filename)" Importance="High" />
<Message Text="Directory = %(ProjectToBuild.Directory)" Importance="High" />

<Exec Command='$(GenDummyCommand) -project %(ProjectToBuild.Filename) -source %(ProjectToBuild.RootDir)%(ProjectToBuild.Directory).. -clonePath $(ClonedProjectsDir)' />

</Target>

<Target Name="AfterDummy">
<Message Text="Clean Directory" Importance="High" />
<RemoveDir Directories="$(PublicDummyProjectDir);$(InternalDummyProjectDir)" />
</Target>

</Project>
1 change: 0 additions & 1 deletion build/common.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<GenerateDependencyFile>False</GenerateDependencyFile>
<Deterministic>True</Deterministic>
<ProduceReferenceAssembly>True</ProduceReferenceAssembly>
<NoWarn Condition="'$(IsDummyBuild)' == 'True'">CS0067;CS0169;CS0414;CS0649;CS1998</NoWarn>
</PropertyGroup>

<PropertyGroup>
Expand Down
20 changes: 1 addition & 19 deletions build/common.targets
Original file line number Diff line number Diff line change
@@ -1,33 +1,15 @@
<Project>

<UsingTask TaskName="GenDummyTask" AssemblyFile="$(MSBuildThisFileDirectory)tasks\GenDummy.Tasks.dll" />

<Target Name="CopyToArtifactsDirectory"
Condition="'$(ArtifactsDirectory)' != ''"
DependsOnTargets="GetCopyToOutputDirectoryItems">
<ItemGroup>
<OutputFilesToCopy Include="$(OutDir)**" />
</ItemGroup>

<Copy SourceFiles="@(OutputFilesToCopy)"
DestinationFiles="$(ArtifactsDirectory)%(RecursiveDir)%(Filename)%(Extension)" />
</Target>

<Target Name="CopyToDummyArtifactsDirectory"
DependsOnTargets="GetCopyToOutputDirectoryItems">
<Copy SourceFiles="$(TargetPath)"
DestinationFiles="$(OutputDummyDir)$(TargetFileName)" />
</Target>

<Target Name="BeforeCompile"
Condition="'$(IsDummyBuild)' == 'True'">

<GenDummyTask Sources="@(Compile)" OutputDirectory="$(IntermediateOutputPath)dummy\">
<Output TaskParameter="GeneratedFiles" ItemName="_DummyCompile" />
</GenDummyTask>
<ItemGroup>
<Compile Remove="@(Compile)" />
<Compile Include="@(_DummyCompile)" />
</ItemGroup>
</Target>

</Project>
Binary file removed build/tasks/GenDummy.Tasks.dll
Binary file not shown.
Binary file removed build/tasks/GenDummy.dll
Binary file not shown.
Binary file added tools/GenDummy/CommandLine.dll
Binary file not shown.
Loading

0 comments on commit a9524b6

Please sign in to comment.