refines build related things
authorJeonghoon Park <jh1979.park@samsung.com>
Tue, 17 Apr 2018 08:36:18 +0000 (17:36 +0900)
committerJeonghoon Park <jh1979.park@samsung.com>
Tue, 17 Apr 2018 08:36:18 +0000 (17:36 +0900)
CMakeLists.txt
daemon/CMakeLists.txt
packaging/tizen-things-daemon.spec

index 4637a7e..9b6dc68 100644 (file)
@@ -1,31 +1,4 @@
 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)
index 3da3229..378732c 100644 (file)
@@ -1,13 +1,29 @@
+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})
index 3be1a2b..b7daff6 100644 (file)
@@ -1,16 +1,13 @@
-%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
 
@@ -22,44 +19,47 @@ BuildRequires: pkgconfig(glib-2.0)
 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
@@ -67,13 +67,15 @@ install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/%{P_NAME}.service
 %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