CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(${P_NAME} C)
-
-SET(INSTALL_EXEC_PREFIX "${INSTALL_PREFIX}/bin")
-SET(PROJECT_ROOT_DIR "${CMAKE_SOURCE_DIR}")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED
- capi-appfw-service-application
- capi-system-info
- dlog
- libtzplatform-config
- glib-2.0
- ecore
-)
-
-FOREACH (flag ${pkgs_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Winline -g -fno-builtin-malloc -fPIE")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
-
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${P_NAME}.xml ${CMAKE_BINARY_DIR}/${ORG_PREFIX}.${P_NAME}.xml)
ADD_SUBDIRECTORY(daemon)
-ADD_SUBDIRECTORY(workers)
-
-#install
-INSTALL(FILES ${CMAKE_BINARY_DIR}/${ORG_PREFIX}.${P_NAME}.xml DESTINATION /usr/share/packages)
+ADD_SUBDIRECTORY(lib)
+SET(CMAKE_VERBOSE_MAKEFILE 0)
SET(DAEMON tizen-things-daemon)
-FILE(GLOB daemon_source
- ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c
+INCLUDE(FindPkgConfig)
+pkg_check_modules(DAEMON_PKGS REQUIRED
+ glib-2.0
+ dlog
+ libtzplatform-config
)
-#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc)
+FOREACH (flag ${DAEMON_PKGS_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
-ADD_EXECUTABLE(${DAEMON} ${daemon_source})
-TARGET_LINK_LIBRARIES(${DAEMON} ${pkgs_LDFLAGS} "-pie -lm")
+FILE(GLOB DAEMON_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Winline -g -fno-builtin-malloc -fPIE")
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fstack-protector-all -D_FORTIFY_SOURCE=2")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,now -Wl,-z,relro")
+
+#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src/include)
+
+ADD_EXECUTABLE(${DAEMON} ${DAEMON_SOURCE})
+TARGET_LINK_LIBRARIES(${DAEMON} ${DAEMON_PKGS_LDFLAGS} -lm)
# Install
-INSTALL(TARGETS ${DAEMON} DESTINATION /usr/bin)
+INSTALL(TARGETS ${DAEMON} DESTINATION ${INSTALL_BIN_DIR})
-%define P_NAME tizen-things-daemon
-%define ORG_PREFIX org.tizen
-
-Name: %{ORG_PREFIX}.%{P_NAME}
+Name: tizen-things-daemon
%define alias %{name}
-Summary: IoTivity Application
+Summary: Tizen Things Service Daemon
Group: Applications/Core Applications
Version: 0.0.1
Release: 1
License: Flora-1.1
Provides: %{name} = %{version}-%{release}
Source0: %{name}-%{version}.tar.gz
-Source1: %{P_NAME}.service
+Source1: %{name}.service
BuildRequires: cmake
BuildRequires: pkgconfig(libtzplatform-config)
%description
-Tizen Things daemon and applications
+Tizen Things daemon
+
+%package devel
+Summary: A Things Service library in Tizen (Development)
+Group: Applications/Core Applications
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+A Things Service library in Tizen (Development) package.
%prep
%setup -q
%build
-%define _bin_dir /usr/bin
-%define _pkg_dir %{TZ_SYS_RO_APP}/%{alias}
-%define _pkg_shared_dir %{_pkg_dir}/shared
-%define _pkg_data_dir %{_pkg_dir}/data
-%define _pkg_rw_data_dir /home/owner/apps_rw/%{alias}/data
-%define _pkg_res_dir %{_pkg_dir}/res
-%define _sys_icons_dir %{_pkg_shared_dir}/res
-%define _sys_packages_dir %{TZ_SYS_RO_PACKAGES}
-%define _sys_license_dir %{TZ_SYS_SHARE}/license
-
+%ifarch %{arm}
export CFLAGS="$CFLAGS -DTIZEN_BUILD_TARGET"
export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_TARGET"
export FFLAGS="$FFLAGS -DTIZEN_BUILD_TARGET"
+%else
+export CFLAGS="$CFLAGS -DTIZEN_BUILD_EMULATOR"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_EMULATOR"
+export FFLAGS="$FFLAGS -DTIZEN_BUILD_EMULATOR"
+%endif
+
+MAJOR_VER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+
+cmake . -DINSTALL_BIN_DIR=%{_bindir} \
+ -DINSTALL_LIB_DIR=%{_libdir} \
+ -DINSTALL_INC_DIR=%{_includedir} \
+ -DFULL_VER=%{version} \
+ -DMAJOR_VER=${MAJOR_VER}
-cmake . -DP_NAME=%{P_NAME} \
- -DORG_PREFIX=%{ORG_PREFIX} \
- -DINSTALL_PREFIX=%{_pkg_dir}
make %{?jobs:-j%jobs}
%install
%make_install
-%define tizen_sign 1
-%define tizen_sign_base %{_pkg_dir}
-%define tizen_sign_level platform
-%define tizen_author_sign 1
-%define tizen_dist_sign 1
-
mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
-install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/%{P_NAME}.service
-%install_service multi-user.target.wants %{P_NAME}.service
+install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/%{name}.service
+%install_service multi-user.target.wants %{name}.service
%post
/sbin/ldconfig
%postun -p /sbin/ldconfig
%files
-%manifest %{alias}.manifest
+%manifest %{name}.manifest
%license LICENSE.Flora NOTICE
%defattr(-,root,root,-)
-
-%{_unitdir}/%{P_NAME}.service
-%{_unitdir}/multi-user.target.wants/%{P_NAME}.service
-
-%{_bin_dir}/tizen-things-daemon
-%{_pkg_dir}/bin/ttd-system-info
-%{_sys_packages_dir}/%{alias}.xml
+%{_unitdir}/%{name}.service
+%{_unitdir}/multi-user.target.wants/%{name}.service
+%{_libdir}/*.so.*
+%{_bindir}/*
+
+%files devel
+%{_includedir}/*.h
+%{_libdir}/pkgconfig/*.pc
+%{_libdir}/*.so