Add dotnet-cli
[platform/core/dotnet/build-tools.git] / packaging / dotnet-build-tools.spec
1 Name:       dotnet-build-tools
2 Summary:    Tools for building C# API projects
3 Version:    1.2.0
4 Release:    1
5 Group:      Development/Libraries
6 License:    MIT and Apache-2.0
7 URL:        https://www.tizen.org
8 Source0:    %{name}-%{version}.tar.gz
9 Source1:    macros.dotnet-build-tools
10 Source2:    dotnet-dev-linux-x64.latest.tar.gz
11 Source3:    deps.tar.gz
12
13 AutoReqProv: no
14
15 BuildRequires: patchelf
16
17 Requires: corefx-managed-ref
18 Requires: referenceassemblies-pcl
19
20 Requires: mono-compat
21 Requires: mono-devel
22 Requires: mono-compiler
23
24 %define debug_package %{nil}
25
26 %description
27 Build target files (.Targets) and Tools (including NuGet.exe) for building
28 C# Deivce API with xbuild in GBS environment.
29
30 %define CLI_PATH %{_datadir}/dotnet-build-tools/cli
31
32 %prep
33 %setup -q
34
35 %build
36 # Prepare dotnet-cli
37 mkdir -p dotnet
38 tar xf %{SOURCE2} -C ./dotnet
39 tar xf %{SOURCE3} -C ./dotnet
40
41 for file in $( find ./dotnet -name "dotnet" -type f )
42 do
43     patchelf --set-interpreter %{CLI_PATH}/deps/ld-linux-x86-64.so.2 ${file}
44     patchelf --set-rpath %{CLI_PATH}/deps/ ${file}
45 done
46 for file in $( find ./dotnet -type f \( -name "*.so" -or -name "*.so.*" \) -not -name "*.dbg" -not -name "ld-*.so*" )
47 do
48     patchelf --set-rpath %{CLI_PATH}/deps/ ${file}
49 done
50
51 %install
52 %define NuGetDir %{_datadir}/NuGet
53 %define XBuildDir /usr/lib/mono/xbuild
54 %define ToolsDir %{_datadir}/dotnet-build-tools
55
56 # Tizen.GBS.BuildTasks
57 mkdir -p %{buildroot}%{XBuildDir}/14.0/Microsoft.Common.targets/ImportAfter
58 install -p -m 644 Tizen.GBS.BuildTasks/Tizen.GBS.ImportAfter.targets %{buildroot}%{XBuildDir}/14.0/Microsoft.Common.targets/ImportAfter
59
60 # NuGet
61 mkdir -p %{buildroot}%{_bindir}
62 mkdir -p %{buildroot}%{NuGetDir}
63 install -p -m 755 NuGet/* %{buildroot}%{NuGetDir}
64 ln -s %{NuGetDir}/nuget %{buildroot}%{_bindir}/nuget
65 ln -s %{NuGetDir}/NuGet.exe %{buildroot}%{_bindir}/nuget.exe
66
67 # NuGet.BuildTasks
68 mkdir -p %{buildroot}%{XBuildDir}/Microsoft/NuGet
69 install -p -m 644 NuGet.BuildTasks/Microsoft.NuGet.targets %{buildroot}%{XBuildDir}/Microsoft/NuGet
70 install -p -m 644 NuGet.BuildTasks/Microsoft.NuGet.Build.Tasks.dll %{buildroot}%{XBuildDir}/Microsoft/NuGet
71 install -p -m 644 NuGet.BuildTasks/Microsoft.NuGet.props %{buildroot}%{XBuildDir}/Microsoft/NuGet
72 mkdir -p %{buildroot}%{XBuildDir}/14.0/Microsoft.Common.targets/ImportBefore
73 install -p -m 644 NuGet.BuildTasks/ImportBeforeAfter/Microsoft.NuGet.ImportBefore.props %{buildroot}%{XBuildDir}/14.0/Microsoft.Common.targets/ImportBefore
74 mkdir -p %{buildroot}%{XBuildDir}/14.0/Microsoft.Common.targets/ImportAfter
75 install -p -m 644 NuGet.BuildTasks/ImportBeforeAfter/Microsoft.NuGet.ImportAfter.targets %{buildroot}%{XBuildDir}/14.0/Microsoft.Common.targets/ImportAfter
76
77 # BuildTools
78 mkdir -p %{buildroot}%{ToolsDir}
79 install -p -m 755 Tools/dotnet-build.sh %{buildroot}%{ToolsDir}
80 ln -s %{ToolsDir}/dotnet-build.sh %{buildroot}%{_bindir}/dotnet-build
81
82 # RPM Macros
83 install -D -p -m 0644 %{S:1} %{buildroot}%{_sysconfdir}/rpm/macros.dotnet-build-tools
84
85 # dotnet-cli
86 mkdir -p %{buildroot}%{ToolsDir}/cli
87 cp -fr ./dotnet/* %{buildroot}%{ToolsDir}/cli
88 ln -s %{ToolsDir}/cli/dotnet %{buildroot}%{_bindir}/dotnet
89
90 %files
91 %license LICENSE.NuGet
92 %config(noreplace) %{_sysconfdir}/rpm/macros.dotnet-build-tools
93 %{_bindir}/*
94 %{NuGetDir}/*
95 %{XBuildDir}/*
96 %{ToolsDir}/*