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