1 <Project DefaultTargets="Build">
3 <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
6 <TargetFramework>netstandard1.6</TargetFramework>
7 <GenerateDependencyFile>false</GenerateDependencyFile>
8 <DummyAssemblyVersion>99.0.0</DummyAssemblyVersion>
11 <!-- Properties for directories -->
13 <ToolsDir>$(MSBuildThisFileDirectory)..\tools\GenAPI\</ToolsDir>
14 <GenAPISourceDir>$(MSBuildThisFileDirectory)\..\Artifacts\bin\</GenAPISourceDir>
15 <GenAPILibDir>$(MSBuildThisFileDirectory)obj\_ref_lib\</GenAPILibDir>
16 <GenAPITargetDir>$(MSBuildThisFileDirectory)obj\_ref_api\</GenAPITargetDir>
17 <DummyOutputPath>$(MSBuildThisFileDirectory)\..\Artifacts\bin_dummy</DummyOutputPath>
20 <!-- Properties for GenAPI tool -->
22 <GenAPIPath>$(ToolsDir)GenAPI.exe</GenAPIPath>
23 <GenAPICommand>dotnet $(GenAPIPath)</GenAPICommand>
26 <!-- Source assemblies -->
28 <TizenAssemblies Include="$(GenAPISourceDir)*.dll" />
31 <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
33 <Target Name="Compile" />
34 <Target Name="CopyFilesToOutputDirectory" />
36 <!-- Target for preparing reference lib directory -->
37 <Target Name="Prepare">
39 <ReferencePath Include="@(TizenAssemblies)" />
41 <MakeDir Directories="$(GenAPILibDir);$(GenAPITargetDir)" />
42 <Copy SourceFiles="@(ReferencePath)" DestinationFolder="$(GenAPILibDir)" />
45 <!-- Target for generating *.AssemblyInfo.cs files -->
46 <Target Name="GenerateAsmInfo"
47 Inputs="@(TizenAssemblies)" Outputs="$(GenAPITargetDir)%(Filename).AssemblyInfo.cs">
50 <GeneratedAssemblyInfoSource>$(GenAPITargetDir)%(TizenAssemblies.Filename).AssemblyInfo.cs</GeneratedAssemblyInfoSource>
54 <AssemblyInfoLines Include="[assembly:System.Reflection.AssemblyVersion("$(DummyAssemblyVersion)")]" />
58 File="$(GeneratedAssemblyInfoSource)"
59 Lines="@(AssemblyInfoLines)"
63 <FileWrites Include="$(GeneratedAssemblyInfoSource)" />
68 <!-- Target for generating reference source files using GenAPI -->
69 <Target Name="GenerateAPI"
70 Inputs="@(TizenAssemblies)" Outputs="$(GenAPITargetDir)%(Filename).cs">
72 <GeneratedReferenceAssemblySource>$(GenAPITargetDir)%(TizenAssemblies.Filename).cs</GeneratedReferenceAssemblySource>
75 <Message Text="[GenAPI] %(TizenAssemblies.Filename) -> $(GeneratedReferenceAssemblySource)" Importance="High" />
77 <Exec Command='$(GenAPICommand) -assembly:"%(TizenAssemblies.Identity)" -libPath:"$(GenAPILibDir)" -out:"$(GeneratedReferenceAssemblySource)" -throw:"Not Supported Feature" -global' />
81 <Target Name="GenerateDummy"
82 DependsOnTargets="GenerateAsmInfo;GenerateAPI"
83 Inputs="@(TizenAssemblies)" Outputs="$(OutputPath)%(TizenAssemblies.Filename).dll">
85 <ThisAssemblyFilename>%(TizenAssemblies.Filename)</ThisAssemblyFilename>
86 <GeneratedAssemblyInfoSource>$(GenAPITargetDir)%(TizenAssemblies.Filename).AssemblyInfo.cs</GeneratedAssemblyInfoSource>
87 <GeneratedReferenceAssemblySource>$(GenAPITargetDir)%(TizenAssemblies.Filename).cs</GeneratedReferenceAssemblySource>
88 <GeneratedReferenceAssembly>$(OutputPath)%(TizenAssemblies.Filename).dll</GeneratedReferenceAssembly>
91 <Message Text="[Compile] %(TizenAssemblies.Filename) -> $(GeneratedReferenceAssembly)" Importance="High" />
94 <FilteredReferencePath Include="@(ReferencePath)" Condition="%(Filename) != $(ThisAssemblyFilename)" />
98 Sources="$(GeneratedReferenceAssemblySource);$(GeneratedAssemblyInfoSource)"
99 OutputAssembly="$(GeneratedReferenceAssembly)"
100 AdditionalLibPaths="$(AdditionalLibPaths)"
101 AllowUnsafeBlocks="true"
102 DefineConstants="$(DefineConstants)"
103 DisabledWarnings="$(NoWarn)"
104 TargetType="$(OutputType)"
105 NoStandardLib="$(NoCompilerStandardLib)"
106 References="@(FilteredReferencePath)"
108 ToolExe="$(CscToolExe)"
109 ToolPath="$(CscToolPath)" />
113 <Target Name="AfterBuild" DependsOnTargets="Prepare;GenerateDummy">
114 <RemoveDir Directories="$(DummyOutputPath)" />
115 <MakeDir Directories="$(DummyOutputPath)" />
118 <TizenRefAssemblies Include="$(OutDir)/*.dll" />
121 <Copy SourceFiles="@(TizenRefAssemblies)" DestinationFolder="$(DummyOutputPath)" />