Release 4.0.0-preview1-00138
[platform/core/csapi/tizenfx.git] / pkg / Tizen.NET.Dummy.csproj
1 <Project DefaultTargets="Build">
2
3   <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
4
5   <PropertyGroup>
6     <TargetFramework>netstandard1.6</TargetFramework>
7     <GenerateDependencyFile>false</GenerateDependencyFile>
8     <DummyAssemblyVersion>99.0.0</DummyAssemblyVersion>
9   </PropertyGroup>
10
11   <!-- Properties for directories -->
12   <PropertyGroup>
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>
18   </PropertyGroup>
19
20   <!-- Properties for GenAPI tool -->
21   <PropertyGroup>
22     <GenAPIPath>$(ToolsDir)GenAPI.exe</GenAPIPath>
23     <GenAPICommand>dotnet $(GenAPIPath)</GenAPICommand>
24   </PropertyGroup>
25
26   <!-- Source assemblies -->
27   <ItemGroup>
28     <TizenAssemblies Include="$(GenAPISourceDir)*.dll" />
29   </ItemGroup>
30
31   <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
32
33   <Target Name="Compile" />
34   <Target Name="CopyFilesToOutputDirectory" />
35
36   <!-- Target for preparing reference lib directory -->
37   <Target Name="Prepare">
38     <ItemGroup>
39       <ReferencePath Include="@(TizenAssemblies)" />
40     </ItemGroup>
41     <MakeDir Directories="$(GenAPILibDir);$(GenAPITargetDir)" />
42     <Copy SourceFiles="@(ReferencePath)" DestinationFolder="$(GenAPILibDir)" />
43   </Target>
44
45   <!-- Target for generating *.AssemblyInfo.cs files -->
46   <Target Name="GenerateAsmInfo"
47           Inputs="@(TizenAssemblies)" Outputs="$(GenAPITargetDir)%(Filename).AssemblyInfo.cs">
48
49     <PropertyGroup>
50       <GeneratedAssemblyInfoSource>$(GenAPITargetDir)%(TizenAssemblies.Filename).AssemblyInfo.cs</GeneratedAssemblyInfoSource>
51     </PropertyGroup>
52
53     <ItemGroup>
54       <AssemblyInfoLines Include="[assembly:System.Reflection.AssemblyVersion(&quot;$(DummyAssemblyVersion)&quot;)]" />
55     </ItemGroup>
56
57     <WriteLinesToFile
58       File="$(GeneratedAssemblyInfoSource)"
59       Lines="@(AssemblyInfoLines)"
60       Overwrite="true" />
61
62     <ItemGroup>
63       <FileWrites Include="$(GeneratedAssemblyInfoSource)" />
64     </ItemGroup>
65
66   </Target>
67
68   <!-- Target for generating reference source files using GenAPI -->
69   <Target Name="GenerateAPI"
70           Inputs="@(TizenAssemblies)" Outputs="$(GenAPITargetDir)%(Filename).cs">
71     <PropertyGroup>
72       <GeneratedReferenceAssemblySource>$(GenAPITargetDir)%(TizenAssemblies.Filename).cs</GeneratedReferenceAssemblySource>
73     </PropertyGroup>
74
75     <Message Text="[GenAPI] %(TizenAssemblies.Filename) -> $(GeneratedReferenceAssemblySource)" Importance="High" />
76
77     <Exec Command='$(GenAPICommand) -assembly:&quot;%(TizenAssemblies.Identity)&quot; -libPath:&quot;$(GenAPILibDir)&quot; -out:&quot;$(GeneratedReferenceAssemblySource)&quot; -throw:&quot;Not Supported Feature&quot; -global' />
78   </Target>
79
80
81   <Target Name="GenerateDummy"
82           DependsOnTargets="GenerateAsmInfo;GenerateAPI"
83           Inputs="@(TizenAssemblies)" Outputs="$(OutputPath)%(TizenAssemblies.Filename).dll">
84     <PropertyGroup>
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>
89     </PropertyGroup>
90
91     <Message Text="[Compile] %(TizenAssemblies.Filename) -> $(GeneratedReferenceAssembly)" Importance="High" />
92
93     <ItemGroup>
94       <FilteredReferencePath Include="@(ReferencePath)" Condition="%(Filename) != $(ThisAssemblyFilename)" />
95     </ItemGroup>
96
97     <Csc
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)"
107         Deterministic="true"
108         ToolExe="$(CscToolExe)"
109         ToolPath="$(CscToolPath)" />
110
111   </Target>
112
113   <Target Name="AfterBuild" DependsOnTargets="Prepare;GenerateDummy">
114     <RemoveDir Directories="$(DummyOutputPath)" />
115     <MakeDir Directories="$(DummyOutputPath)" />
116
117     <ItemGroup>
118       <TizenRefAssemblies Include="$(OutDir)/*.dll" />
119     </ItemGroup>
120
121     <Copy SourceFiles="@(TizenRefAssemblies)" DestinationFolder="$(DummyOutputPath)" />
122   </Target>
123
124 </Project>
125