# Below features are used for unittest.
# Do not add neural network dependency to ML-Agent.
%define release_test 0
-%define test_script $(pwd)/packaging/run_unittests.sh
# To generage gcov package, --define "gcov 1"
%if 0%{?gcov:1}
%global debug_package %{nil}
%global __debug_install_post %{nil}
%endif
+###########################################################################
+# Macros for building and testing option control
+%define builddir build
+%define source_root %{_builddir}/%{?buildsubdir}
+%define test_script %{source_root}/packaging/run_unittests.sh
+
###########################################################################
# Package / sub-package definitions
Name: machine-learning-agent
%define enable_test_coverage -Db_coverage=false
%endif # unit_test
-mkdir -p build
+mkdir -p %{builddir}
meson --buildtype=plain --prefix=%{_prefix} --sysconfdir=%{_sysconfdir} --libdir=%{_libdir} \
--bindir=%{_bindir} --includedir=%{_includedir} \
%{enable_test} %{install_test} %{enable_test_coverage} %{enable_gcov} \
%{enable_tizen} %{service_db_path} %{service_db_key_prefix} \
- build
+ %{builddir}
ninja -C build %{?_smp_mflags}
%endif # unit_test
%install
-DESTDIR=%{buildroot} ninja -C build %{?_smp_mflags} install
+DESTDIR=%{buildroot} ninja -C %{builddir} %{?_smp_mflags} install
%if 0%{?unit_test}
%if 0%{?testcoverage}
# Generate report
# TODO: the --no-external option is removed to include machine-learning-agent related source files.
# Restore this option when there is proper way to include those source files.
-pushd build
+pushd %{builddir}
lcov -t 'ML-Agent unittest coverage' -o unittest.info -c -d . -b $(pwd)
# Exclude generated files (e.g., Orc, Protobuf) and device-dependent files.
# Exclude files which are generated by gdbus-codegen and external files in /usr/*.