Add option to enable clang Asan build.
[platform/core/dotnet/launcher.git] / packaging / dotnet-launcher.spec
1 Name:       dotnet-launcher
2 Summary:    Launchpad plugin for dotnet apps
3 Version:    1.1.0
4 Release:    1
5 Group:      Application Framework/Application State Management
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 AutoReqProv: no
9
10 BuildRequires: cmake
11 BuildRequires: pkgconfig(aul)
12 BuildRequires: pkgconfig(bundle)
13 BuildRequires: pkgconfig(dlog)
14 BuildRequires: pkgconfig(ecore)
15 BuildRequires: pkgconfig(launchpad)
16 BuildRequires: pkgconfig(pkgmgr-info)
17 BuildRequires: pkgconfig(pkgmgr-installer)
18 BuildRequires: pkgconfig(elementary)
19 BuildRequires: pkgconfig(glib-2.0)
20 BuildRequires: aul-devel
21 BuildRequires: dotnet-build-tools
22
23 %if 0%{?asan_enabled}
24 BuildRequires: clang >= 3.8
25 BuildRequires: compiler-rt
26 %endif
27
28 Requires: aul
29 Requires: launchpad
30
31 Requires(post): /sbin/ldconfig
32 Requires(post): /usr/bin/systemctl
33 Requires(postun): /sbin/ldconfig
34 Requires(postun): /usr/bin/systemctl
35 Requires(preun): /usr/bin/systemctl
36
37 %define _loaderdir %{_prefix}/share/aul
38 %define _configdir /etc
39 %define _device_api_dir %{dotnet_assembly_path}
40 %define _runtime_dir /usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.0
41 %define _install_plugin_dir /usr/etc/package-manager/parserlib
42 %define _install_mdplugin_dir /etc/package-manager/parserlib/metadata
43 %define _native_lib_dir /usr/share/dotnet.tizen/lib
44
45 ExcludeArch: aarch64
46
47 %description
48 Launchpad plugin for launching dotnet apps
49
50
51 %prep
52 %setup -q
53
54 %define use_managed_launcher 0
55 %if %{use_managed_launcher}
56         %define USE_MANAGED_LAUNCHER ENABLE
57 %endif
58
59 %build
60
61 %if 0%{?asan_enabled}
62 %define _dotnet_build_conf Debug
63 export CFLAGS=" --target=%{_host} "
64 export CXXFLAGS=" --target=%{_host} "
65 %ifarch %{ix86}
66 export CFLAGS=$(echo $CFLAGS | sed -e 's/--target=i686/--target=i586/')
67 export CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/--target=i686/--target=i586/')
68 %endif
69 %endif
70
71 cmake \
72         -DCMAKE_INSTALL_PREFIX=%{_prefix} \
73 %if 0%{?asan_enabled}
74         -DCMAKE_C_COMPILER=clang \
75         -DCMAKE_CXX_COMPILER=clang++ \
76         -DASAN_ENABLED=TRUE \
77 %endif
78         -DPACKAGE_NAME=%{name} \
79         -DLIBDIR=%{_libdir} \
80         -DBINDIR=%{_bindir} \
81         -DLOADERDIR=%{_loaderdir} \
82         -DCONFIGDIR=%{_configdir} \
83         -DCMAKE_BUILD_TYPE=%{_dotnet_build_conf} \
84         -DDEVICE_API_DIR=%{_device_api_dir} \
85         -DRUNTIME_DIR=%{_runtime_dir} \
86         -DCROSSGEN_PATH=%{_device_api_dir}/crossgen \
87 %if %{use_managed_launcher}
88         -DCORECLR_LAUNCHER_ASSEMBLY_PATH=%{_bindir}/Tizen.Runtime.dll \
89 %endif
90         -DINSTALL_PLUGIN_DIR=%{_install_plugin_dir} \
91         -DINSTALL_MDPLUGIN_DIR=%{_install_mdplugin_dir} \
92         -DVERSION=%{version} \
93         -DUSE_MANAGED_LAUNCHER=%{?USE_MANAGED_LAUNCHER:%USE_MANAGED_LAUNCHER} \
94         -DNATIVE_LIB_DIR=%{_native_lib_dir} \
95         NativeLauncher
96
97 make %{?jobs:-j%jobs} VERBOSE=1
98
99 %dotnet_build Tizen.Runtime
100
101 %install
102 rm -rf %{buildroot}
103 %make_install
104 %if %{use_managed_launcher}
105 install -p -m 644 Tizen.Runtime/bin/*/*/Tizen.Runtime.dll %{buildroot}%{_bindir}
106 %endif
107
108 mkdir -p %{buildroot}%{_native_lib_dir}
109 ln -sf %{_libdir}/libsqlite3.so.0 %{buildroot}%{_native_lib_dir}/libsqlite3.so
110
111 %files
112 %manifest dotnet-launcher.manifest
113 %{_loaderdir}/dotnet.loader
114 %{_loaderdir}/dotnet.launcher
115 %{_loaderdir}/dotnet.debugger
116 %{_native_lib_dir}/libsqlite3.so
117 %{_bindir}/nitool
118 #%{_install_plugin_dir}/libui-application.so
119 %{_install_mdplugin_dir}/libprefer_dotnet_aot_plugin.so
120 %if %{use_managed_launcher}
121 %{_bindir}/Tizen.Runtime.dll
122 %endif
123 %caps(cap_sys_admin,cap_setgid=ei) %{_bindir}/dotnet-launcher