Name: bundle Summary: String key-val dictionary ADT Version: 0.9.10 Release: 0 Group: System/Libraries License: Apache-2.0 Source0: bundle-%{version}.tar.gz Source1001: bundle.manifest Source1002: parcel.manifest BuildRequires: cmake BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(capi-base-common) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(gmock) %if 0%{?gcov:1} BuildRequires: lcov BuildRequires: zip %endif %description Simple string key-val dictionary ADT %package devel Summary: String key-val dictionary ADT (devel) Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel Simple string key-val dictionary ADT (devel) ################################################# # unittests ################################################# %package unittests Summary: GTest for bundle Group: Development/Libraries %description unittests GTest for bundle ################################################# # gcov ################################################# %if 0%{?gcov:1} %package gcov Summary: Simple string key-val dictionary ADT (gcov) Group: Application Framework/Testing %description gcov Simple string key-val dictionary ADT gcov objects %endif ################################################# ## parcel ################################################# %package -n parcel Summary: Parcel Library Group: Development/Libraries %description -n parcel Parcel Library %package -n parcel-devel Summary: Parcel Library (devel) Group: Development/Libraries Requires: parcel = %{version}-%{release} %description -n parcel-devel Parcel Library (devel) ################################################# # parcel-unittests ################################################# %package -n parcel-unittests Summary: GTest for parcel Group: Development/Libraries %description -n parcel-unittests GTest for parcel %prep %setup -q -n %{name}-%{version} cp %{SOURCE1001} . cp %{SOURCE1002} . %build %if 0%{?gcov:1} export CFLAGS+=" -fprofile-arcs -ftest-coverage" export CXXFLAGS+=" -fprofile-arcs -ftest-coverage" export FFLAGS+=" -fprofile-arcs -ftest-coverage" export LDFLAGS+=" -lgcov" %endif %cmake -DVERSION=%{version} . %__make %{?_smp_mflags} %check ctest --verbose %{?_smp_mflags} %if 0%{?gcov:1} lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info genhtml %{name}.info -o out --legend --show-details %endif %install %make_install %if 0%{?gcov:1} builddir=$(basename $PWD) gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir" mkdir -p "$gcno_obj_dir" find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';' %endif cat << EOF > run-unittest.sh #!/bin/sh GCOV_PATH="/tmp/home/abuild/rpmbuild/BUILD" PAKCAGE="%{name}-%{version}" set_perm() { ## Sets the permission for applications /usr/bin/find /tmp/home/ -print | /usr/bin/xargs -n1 /usr/bin/chsmack -a "System::Run" &> /dev/null /usr/bin/find /tmp/home/ -print | /usr/bin/xargs -n1 /usr/bin/chsmack -a "System::Run" -t &> /dev/null /usr/bin/chmod -R 777 /tmp/home/ } setup() { echo "setup start" /usr/bin/mkdir -p "${GCOV_PATH}/${PACKAGE}" set_perm } test_main() { echo "test_main start" export "GCOV_PREFIX=/tmp" /usr/bin/bundle_unittests } teardown() { echo "teardown start" set_perm } main() { setup test_main teardown } main "\$*" EOF mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name} install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/ cat << EOF > run-parcel-unittest.sh #!/bin/sh GCOV_PATH="/tmp/home/abuild/rpmbuild/BUILD" PAKCAGE="parcel-%{version}" set_perm() { ## Sets the permission for applications /usr/bin/find /tmp/home/ -print | /usr/bin/xargs -n1 /usr/bin/chsmack -a "System::Run" &> /dev/null /usr/bin/find /tmp/home/ -print | /usr/bin/xargs -n1 /usr/bin/chsmack -a "System::Run" -t &> /dev/null /usr/bin/chmod -R 777 /tmp/home/ } setup() { echo "setup start" /usr/bin/mkdir -p "${GCOV_PATH}/${PACKAGE}" set_perm } test_main() { echo "test_main start" export "GCOV_PREFIX=/tmp" /usr/bin/parcel_unittests } teardown() { echo "teardown start" set_perm } main() { setup test_main teardown } main "\$*" EOF mkdir -p %{buildroot}%{_bindir}/tizen-unittests/parcel install -m 0755 run-parcel-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/parcel/run-unittest.sh %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %post -n parcel /sbin/ldconfig %postun -n parcel /sbin/ldconfig %post unittests %if 0%{?gcov:1} %{_bindir}/bundle_unittests %endif %files %manifest %{name}.manifest %defattr(-,root,root,-) %{_libdir}/libbundle.so.* %license LICENSE %files devel %manifest %{name}.manifest %defattr(-,root,root,-) %{_includedir}/*.h %{_libdir}/pkgconfig/bundle.pc %{_libdir}/libbundle.so ################################################# # unittests ################################################# %files unittests %{_bindir}/bundle_unittests %{_bindir}/tizen-unittests/%{name}/run-unittest.sh ################################################# # bundle-gcov ################################################# %if 0%{?gcov:1} %files gcov %{_datadir}/gcov/obj/* %endif ################################################# # parcel ################################################# %files -n parcel %manifest parcel.manifest %license LICENSE %{_libdir}/libparcel.so.* %files -n parcel-devel %manifest parcel.manifest %{_includedir}/* %{_libdir}/pkgconfig/parcel.pc %{_libdir}/libparcel.so %files -n parcel-unittests %{_bindir}/parcel_unittests %{_bindir}/tizen-unittests/parcel/run-unittest.sh