[cleanup] revise build scripts and packaging 51/240151/1 submit/tizen/20200804.071722
authorYoungjae Shin <yj99.shin@samsung.com>
Tue, 4 Aug 2020 04:34:58 +0000 (13:34 +0900)
committerYoungjae Shin <yj99.shin@samsung.com>
Tue, 4 Aug 2020 04:34:58 +0000 (13:34 +0900)
Change-Id: Ie0008bfbbf3007b456c917f786edb7172d7d9fc0

12 files changed:
CMakeLists.txt
NOTICE
app/CMakeLists.txt
app/bluetooth-share-start.service [moved from packaging/bluetooth-share-start.service with 100% similarity]
app/bluetooth-share.service [moved from packaging/bluetooth-share.service with 100% similarity]
app/bt-share-main.c
init_db.sh [moved from packaging/init_db.sh with 100% similarity, mode: 0755]
lib/CMakeLists.txt
lib/bluetooth-share-api.pc.in
packaging/bluetooth-share.spec
tests/CMakeLists.txt
tests/run_coverage.sh [deleted file]

index 5a57c6b..b9fb26a 100644 (file)
@@ -1,9 +1,37 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.9)
+PROJECT(bluetooth-share)
 
-ADD_SUBDIRECTORY(lib)
+INCLUDE(FindPkgConfig)
+
+SET(EXTRA_FLAGS "-Wall -Werror -fvisibility=hidden")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_FLAGS} -std=c++11")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
+
+SET(REQUIRED_PKGS glib-2.0 bluetooth-api aul appcore-common dlog vconf
+       syspopup-caller deviced notification sqlite3 ecore-file appsvc appcore-efl
+       storage capi-content-media-content libtzplatform-config eventsystem
+       cynara-creds-dbus cynara-client cynara-session storage db-util libsystemd-login
+)
+IF(ENABLE_CONTACTS_SVC)
+       SET(REQUIRED_PKGS ${REQUIRED_PKGS} contacts-service2 zlib)
+       ADD_DEFINITIONS(-DENABLE_CONTACTS_SERVICE2)
+ENDIF()
+
+IF(ENABLE_CALENDAR_SVC)
+       SET(REQUIRED_PKGS ${REQUIRED_PKGS} calendar-service2)
+       ADD_DEFINITIONS(-DENABLE_CALENDAR_SERVICE2)
+ENDIF()
+pkg_check_modules(pkgs REQUIRED ${REQUIRED_PKGS})
 
+SET(BT_SHARE_APP "${PROJECT_NAME}")
+SET(BT_SHARE_LIB "${PROJECT_NAME}-api")
+
+ADD_SUBDIRECTORY(lib)
 ADD_SUBDIRECTORY(app)
 
-IF (BUILD_GCOV)
-ADD_SUBDIRECTORY(tests)
-ENDIF (BUILD_GCOV)
+IF(BUILD_GCOV)
+       ADD_SUBDIRECTORY(tests)
+ENDIF()
+
+INSTALL(PROGRAMS init_db.sh DESTINATION ${DATA_DIR}/${PROJECT_NAME})
diff --git a/NOTICE b/NOTICE
index 0e0f016..7a9049f 100644 (file)
--- a/NOTICE
+++ b/NOTICE
@@ -1,3 +1,3 @@
 Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
 Except as noted, this software is licensed under Apache License, Version 2.
-Please, see the LICENSE.APLv2 file for Apache License terms and conditions.
+Please, see the LICENSE.APLv2 file for Apache license, version 2 terms and conditions.
index aa2f48c..5e62b62 100644 (file)
@@ -1,73 +1,15 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(bluetooth-share C CXX)
-
-SET(SRCS bt-share-main.c
-bt-share-notification.c
-bt-share-common.c
-obex-event-handler.c
-bt-share-syspopup.c
-bt-share-ipc.c
-bt-share-noti-handler.c
-bt-share-cynara.c
-)
+FILE(GLOB APP_SRCS *.c)
 
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/lib)
 
-INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 bluetooth-api
-                               aul appcore-common
-                               dlog vconf syspopup-caller deviced
-                               notification sqlite3 ecore-file
-                               appsvc appcore-efl storage
-                               capi-content-media-content
-                               libtzplatform-config eventsystem
-                               cynara-creds-dbus cynara-client cynara-session
-                               storage db-util libsystemd-login)
-pkg_check_modules(CALENDAR_SERVICE2 calendar-service2)
-pkg_check_modules(CONTACTS_SERVICE2 contacts-service2 zlib)
-
-#FOREACH(flag ${pkgs_CFLAGS})
-FOREACH(flag ${pkgs_CFLAGS} ${CALENDAR_SERVICE2_CFLAGS} ${CONTACTS_SERVICE2_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Werror -Wno-deprecated-declarations")
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-SET(EXEC_PREFIX "\${prefix}")
-SET(INCLUDEDIR "/usr/include")
-SET(VERSION 1.0)
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
-ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{FACTORYFS}\"")
-ADD_DEFINITIONS("-DTARGET")
-ADD_DEFINITIONS("-DSLP_DEBUG")
-#if(CALENDAR_SERVICE2_FOUND)
-#  ADD_DEFINITIONS("-DENABLE_CALENDAR_SERVICE2")
-#endif(CALENDAR_SERVICE2_FOUND)
-#if(CONTACTS_SERVICE2_FOUND)
-#  ADD_DEFINITIONS("-DENABLE_CONTACTS_SERVICE2")
-#endif(CONTACTS_SERVICE2_FOUND)
-
-ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${CALENDAR_SERVICE2_LDFLAGS} ${CONTACTS_SERVICE2_LDFLAGS} -L${CMAKE_CURRENT_SOURCE_DIR}/../lib -lbluetooth-share-api)
-#TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -L${CMAKE_CURRENT_SOURCE_DIR}/../lib -lbluetooth-share-api)
-
-IF (BUILD_GCOV)
-# -fvisibility option should be "default" to call internal functions
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=default -fPIC -Werror -Wno-deprecated-declarations -fprofile-arcs -ftest-coverage")
-
-ADD_LIBRARY(bt-share SHARED ${SRCS})
-SET_TARGET_PROPERTIES(bt-share
-       PROPERTIES
-       SOVERSION 0.1.0
-       CLEAN_DIRECT_OUTPUT 1)
-
-TARGET_LINK_LIBRARIES(bt-share ${pkgs_LDFLAGS} ${CALENDAR_SERVICE2_LDFLAGS} ${CONTACTS_SERVICE2_LDFLAGS} -L${CMAKE_CURRENT_SOURCE_DIR}/../lib -lbluetooth-share-api -lgcov)
-INSTALL(TARGETS bt-share DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
-ENDIF (BUILD_GCOV)
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
-#INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.bluetooth.share.service DESTINATION share/dbus-1/system-services)
+INCLUDE_DIRECTORIES(${pkgs_INCLUDE_DIRS})
+LINK_DIRECTORIES(${pkgs_LIBRARY_DIRS})
+
+ADD_EXECUTABLE(${BT_SHARE_APP} ${APP_SRCS})
+TARGET_LINK_LIBRARIES(${BT_SHARE_APP} ${pkgs_LIBRARIES} ${BT_SHARE_LIB})
+TARGET_COMPILE_OPTIONS(${BT_SHARE_APP} PUBLIC ${pkgs_CFLAGS_OTHER})
+SET_TARGET_PROPERTIES(${BT_SHARE_APP} PROPERTIES POSITION_INDEPENDENT_CODE ON)
+INSTALL(TARGETS ${BT_SHARE_APP} DESTINATION ${BIN_INSTALL_DIR})
+INSTALL(FILES ${PROJECT_NAME}.service DESTINATION ${SYSTEMD_DIR})
+INSTALL(FILES ${PROJECT_NAME}-start.service DESTINATION ${SYSTEMD_DIR})
+#INSTALL(FILES org.bluetooth.share.service DESTINATION ${SHARE_INSTALL_PREFIX}/dbus-1/system-services)
index c9a6228..bd13277 100644 (file)
@@ -46,6 +46,8 @@
 static gboolean terminated;
 static GMainLoop *main_loop = NULL;
 bt_appdata_t *app_state = NULL;
+
+#ifndef BT_SHARE_TEST
 static guint owner_id;
 
 /* LCOV_EXCL_START */
@@ -59,17 +61,6 @@ static void __lang_changed_cb(keynode_t *node, void *user_data)
 }
 /* LCOV_EXCL_STOP */
 
-void _bt_terminate_bluetooth_share(void)
-{
-       FN_START;
-
-       if (main_loop)
-               g_main_loop_quit(main_loop); /* LCOV_EXCL_LINE */
-       else
-               terminated = TRUE;
-
-       FN_END;
-}
 
 /* LCOV_EXCL_START */
 static void __bt_release_service(bt_appdata_t *ad)
@@ -246,24 +237,6 @@ static GSList *__merge_sorted(GSList *inbound, GSList *outbound)
 }
 /* LCOV_EXCL_STOP */
 
-void _bt_remove_temporary_files_by_noti_id(sqlite3 *db, int noti_id)
-{
-       FN_START;
-       GSList *file_list = bt_share_get_all_temporary_files_by_noti_id(db, noti_id, BT_TMP_DIR);
-
-       GSList *current_file = file_list;
-       while (current_file) {
-               /* LCOV_EXCL_START */
-               DBG("Removing [%s]", (char *)(current_file->data));
-               ecore_file_remove((char *)(current_file->data));
-               current_file = g_slist_next(current_file);
-               /* LCOV_EXCL_STOP */
-       }
-
-       bt_share_release_temporary_file_list(file_list);
-       FN_END;
-}
-
 /* LCOV_EXCL_START */
 static gboolean __bt_clean_database(gpointer user_data)
 {
@@ -365,18 +338,6 @@ static gboolean __bt_dbus_request_name(void)
 }
 /* LCOV_EXCL_STOP */
 
-int _bt_init_obex_server(void)
-{
-       retvm_if(bluetooth_obex_server_init(BT_SHARE_DATA_DIR) != BLUETOOTH_ERROR_NONE,
-                       BT_SHARE_FAIL, "Fail to init obex server");
-
-       /* LCOV_EXCL_START */
-       bluetooth_obex_server_set_root(BT_SHARE_DATA_DIR);
-
-       return BT_SHARE_ERROR_NONE;
-       /* LCOV_EXCL_STOP */
-}
-
 /* LCOV_EXCL_START */
 int main(void)
 {
@@ -441,3 +402,46 @@ int main(void)
        return BT_SHARE_ERROR_NONE;
 }
 /* LCOV_EXCL_STOP */
+#endif //BT_SHARE_TEST
+
+void _bt_terminate_bluetooth_share(void)
+{
+       FN_START;
+
+       if (main_loop)
+               g_main_loop_quit(main_loop); /* LCOV_EXCL_LINE */
+       else
+               terminated = TRUE;
+
+       FN_END;
+}
+
+void _bt_remove_temporary_files_by_noti_id(sqlite3 *db, int noti_id)
+{
+       FN_START;
+       GSList *file_list = bt_share_get_all_temporary_files_by_noti_id(db, noti_id, BT_TMP_DIR);
+
+       GSList *current_file = file_list;
+       while (current_file) {
+               /* LCOV_EXCL_START */
+               DBG("Removing [%s]", (char *)(current_file->data));
+               ecore_file_remove((char *)(current_file->data));
+               current_file = g_slist_next(current_file);
+               /* LCOV_EXCL_STOP */
+       }
+
+       bt_share_release_temporary_file_list(file_list);
+       FN_END;
+}
+
+int _bt_init_obex_server(void)
+{
+       retvm_if(bluetooth_obex_server_init(BT_SHARE_DATA_DIR) != BLUETOOTH_ERROR_NONE,
+               BT_SHARE_FAIL, "Fail to init obex server");
+
+/* LCOV_EXCL_START */
+       bluetooth_obex_server_set_root(BT_SHARE_DATA_DIR);
+
+       return BT_SHARE_ERROR_NONE;
+       /* LCOV_EXCL_STOP */
+}
old mode 100644 (file)
new mode 100755 (executable)
similarity index 100%
rename from packaging/init_db.sh
rename to init_db.sh
index 4e69eb4..2a34241 100644 (file)
@@ -1,42 +1,17 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(bluetooth-share-api C CXX)
+FILE(GLOB LIB_SRCS *.c)
 
-SET(SRCS bt-share-db.c
-)
-SET(HEADERS bluetooth-share-api.h)
+pkg_check_modules(lib_pkgs REQUIRED glib-2.0 db-util dlog libtzplatform-config sqlite3)
+INCLUDE_DIRECTORIES(${lib_pkgs_INCLUDE_DIRS})
+LINK_DIRECTORIES(${lib_pkgs_LIBRARY_DIRS})
 
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+ADD_LIBRARY(${BT_SHARE_LIB} SHARED ${LIB_SRCS})
+SET_TARGET_PROPERTIES(${BT_SHARE_LIB} PROPERTIES VERSION ${FULLVER} SOVERSION ${MAJORVER})
+TARGET_LINK_LIBRARIES(${BT_SHARE_LIB} ${lib_pkgs_LIBRARIES})
+TARGET_COMPILE_OPTIONS(${BT_SHARE_LIB} PUBLIC ${lib_pkgs_CFLAGS_OTHER})
+INSTALL(TARGETS ${BT_SHARE_LIB} DESTINATION ${LIB_INSTALL_DIR})
 
-INCLUDE(FindPkgConfig)
-pkg_check_modules(apipkgs REQUIRED glib-2.0 db-util dlog libtzplatform-config sqlite3)
+CONFIGURE_FILE(${BT_SHARE_LIB}.pc.in ${BT_SHARE_LIB}.pc @ONLY)
+INSTALL(FILES ${BT_SHARE_LIB}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
 
-FOREACH(flag ${apipkgs_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-#SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -finstrument-functions")
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-SET(EXEC_PREFIX "\${prefix}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "/usr/include")
-SET(VERSION 1.0)
-
-IF (BUILD_GCOV)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fprofile-arcs -ftest-coverage")
-SET(apipkgs_LDFLAGS "${apipkgs_LDFLAGS} -lgcov")
-ENDIF (BUILD_GCOV)
-
-ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0.1.0)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${apipkgs_LDFLAGS})
-
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY)
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-
-FOREACH(hfile ${HEADERS})
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/bluetooth-share-api)
-ENDFOREACH(hfile)
+INSTALL(FILES ${BT_SHARE_LIB}.h DESTINATION ${INCLUDE_INSTALL_DIR}/${BT_SHARE_LIB})
 
index 4b9e1a3..231bfcd 100644 (file)
@@ -1,12 +1,10 @@
-prefix=@PREFIX@
-exec_prefix=@EXEC_PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
+prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
+includedir=@INCLUDE_INSTALL_DIR@@BT_SHARE_LIB@
 
-Name: bluetooth-share-api
-Description: SAMSUNG Linux platform Bluetooth share API
-Version: @VERSION@
-Requires.private: dlog vconf
-Requires: gio-2.0 db-util
-Libs: -L${libdir} -lbluetooth-share-api
-Cflags: -I${includedir} -I${includedir}/bluetooth-share-api
+Name: @BT_SHARE_LIB@
+Description: Tizen Bluetooth share API
+Version: @FULLVER@
+Requires: glib-2.0 db-util
+Libs: -L${libdir} -l@BT_SHARE_LIB@
+Cflags: -I${includedir}
index 018312b..b954409 100644 (file)
@@ -1,47 +1,44 @@
-%define TZ_COMM_DATA /opt/usr/data/
-%define upgrade_script_path /usr/share/upgrade/scripts
-%define upgrade_data_path /usr/share/upgrade/data
-
-Name:       bluetooth-share
-Summary:    Bluetooth file share Agent
-Version:    0.0.49
-Release:    0
-Group:      Network & Connectivity/Bluetooth
-License:    Apache-2.0
-Source0:    %{name}-%{version}.tar.gz
+Name: bluetooth-share
+Summary: Bluetooth file share Agent
+Version: 0.1.0
+Release: 0
+Group: Network & Connectivity/Bluetooth
+License: Apache-2.0
+Source0: %{name}-%{version}.tar.gz
 Source1001: %{name}.manifest
-Source1004: init_db.sh
-Requires(post): coreutils
+Source1002: 500.%{name}_upgrade.sh
+BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(aul)
+BuildRequires: pkgconfig(bluetooth-api)
+BuildRequires: pkgconfig(calendar-service2)
+BuildRequires: pkgconfig(capi-content-media-content)
+BuildRequires: pkgconfig(contacts-service2)
+BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(cynara-creds-dbus)
+BuildRequires: pkgconfig(cynara-session)
+BuildRequires: pkgconfig(db-util)
+BuildRequires: pkgconfig(deviced)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(ecore)
+BuildRequires: pkgconfig(eventsystem)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(libsystemd)
+BuildRequires: pkgconfig(libtzplatform-config)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(storage)
+BuildRequires: pkgconfig(storage)
+BuildRequires: pkgconfig(syspopup-caller)
+BuildRequires: pkgconfig(vconf)
 Requires(post): smack
-BuildRequires:  cmake
-BuildRequires:  gettext-tools
-BuildRequires:  pkgconfig(appcore-efl)
-BuildRequires:  pkgconfig(bluetooth-api)
-BuildRequires:  pkgconfig(glib-2.0)
-BuildRequires:  pkgconfig(aul)
-BuildRequires:  pkgconfig(dlog)
-BuildRequires:  pkgconfig(sqlite3)
-BuildRequires:  pkgconfig(ecore)
-BuildRequires:  pkgconfig(vconf)
-BuildRequires:  pkgconfig(syspopup-caller)
-BuildRequires:  pkgconfig(deviced)
-BuildRequires:  pkgconfig(notification)
-BuildRequires:  pkgconfig(appsvc)
-BuildRequires:  pkgconfig(db-util)
-BuildRequires:  pkgconfig(capi-content-media-content)
-BuildRequires:  pkgconfig(storage)
-BuildRequires:  pkgconfig(libtzplatform-config)
-BuildRequires:  pkgconfig(cynara-client)
-BuildRequires:  pkgconfig(cynara-session)
-BuildRequires:  pkgconfig(cynara-creds-dbus)
-BuildRequires:  pkgconfig(eventsystem)
-BuildRequires:  pkgconfig(storage)
-BuildRequires:  pkgconfig(libsystemd)
-BuildRequires:  pkgconfig(calendar-service2)
-BuildRequires:  pkgconfig(contacts-service2)
+Requires(post): coreutils
 %if 0%{?gcov:1}
-BuildRequires:  gtest-devel
-BuildRequires:  lcov
+BuildRequires: gtest-devel
+BuildRequires: lcov
+BuildRequires: tar
 %endif
 
 %description
@@ -49,7 +46,7 @@ Bluetooth File Share Agent
 
 %package -n libbluetooth-share
 Summary:    Bluetooth share library
-Group:      Development/Libraries
+Group:      Network & Connectivity/Bluetooth
 Requires:   %{name} = %{version}-%{release}
 
 %description -n libbluetooth-share
@@ -57,7 +54,7 @@ Bluetooth share library
 
 %package -n libbluetooth-share-devel
 Summary:    Development package for libbluetooth-share
-Group:      Development/Libraries
+Group:      Network & Connectivity/Development
 Requires:   %{name} = %{version}-%{release}
 
 %description -n libbluetooth-share-devel
@@ -66,16 +63,18 @@ Development package for libbluetooth-share
 %if 0%{?gcov:1}
 %package gcov
 Summary: Test package for bluetooth-share
-Group:   TO_BE/FILLED
+Group:   Network & Connectivity/Testing
 Requires: %{name} = %{version}-%{release}
 
 %description gcov
 This package is C-API test application.
 %endif
 
+%global upgrade_data_path /usr/share/upgrade/data
+
 %prep
 %setup -q
-cp %{SOURCE1001} .
+cp %{SOURCE1001} %{SOURCE1002} ./
 
 %build
 %if 0%{?gcov:1}
@@ -85,55 +84,39 @@ export FFLAGS+=" -fprofile-arcs -ftest-coverage"
 export LDFLAGS+=" -lgcov"
 %endif
 
-export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE -DENABLE_CONTACTS_SERVICE2 -DENABLE_CALENDAR_SERVICE2"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE -DENABLE_CONTACTS_SERVICE2 -DENABLE_CALENDAR_SERVICE2"
-export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE -DENABLE_CONTACTS_SERVICE2 -DENABLE_CALENDAR_SERVICE2"
-
-export CFLAGS+=" -fpie -fvisibility=hidden"
-export CXXFLAGS+=" -fpie -fvisibility=hidden"
-export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
-
-%cmake . \
-       -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version} \
+       -DCMAKE_VERBOSE_MAKEFILE=OFF \
+       -DBIN_INSTALL_DIR:PATH=%{_bindir} \
+       -DSYSTEMD_DIR:PATH=%{_unitdir} \
+       -DDATA_DIR:PATH=%{TZ_SYS_GLOBALUSER_DATA} \
+       -DENABLE_CONTACTS_SVC=1 \
+       -DENABLE_CALENDAR_SVC=1 \
        -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
-make
-
-%if 0%{?gcov:1}
-mkdir -p gcov-obj
-find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
-%endif
+make %{?_smp_mflags}
 
 %install
 %make_install
-
 %if 0%{?gcov:1}
-mkdir -p %{buildroot}%{_datadir}/gcov/obj
-install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
+find .. -name '*.gcno' | tar cf %{name}-gcov.tar -T -
+install -d -m 755 %{buildroot}%{_datadir}/gcov/obj
+tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj
 %endif
 
-mkdir -p %{buildroot}%{TZ_COMM_DATA}/%{name}
-mkdir -p %{buildroot}%{_unitdir}
-
-install -D -m 0755 %{SOURCE1004} %{buildroot}%{TZ_COMM_DATA}/%{name}/init_db.sh
-install -D -m 0644 packaging/bluetooth-share.service %{buildroot}%{_unitdir}/bluetooth-share.service
-install -D -m 0644 packaging/bluetooth-share-start.service %{buildroot}%{_unitdir}/bluetooth-share-start.service
-
-mkdir -p %{buildroot}%{upgrade_script_path}
 mkdir -p %{buildroot}%{upgrade_data_path}
-cp -f packaging/500.bluetooth-share_upgrade.sh %{buildroot}%{upgrade_script_path}
-cp -f packaging/init_db.sh %{buildroot}%{upgrade_data_path}
+mkdir -p %{buildroot}%{TZ_SYS_UPGRADE_SCRIPTS}
+install -D -m 0755 init_db.sh %{buildroot}%{upgrade_data_path}
+install -D -m 0755 %{SOURCE1002} %{buildroot}%{TZ_SYS_UPGRADE_SCRIPTS}
 
 %check
 %if 0%{?gcov:1}
-pushd tests
-./run_coverage.sh
-popd
+LD_LIBRARY_PATH=lib LD_PRELOAD=tests/libbt-share-mock.so tests/bt-share-gtest
+lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
+genhtml %{name}.info -o out --legend --show-details
 %endif
 
 %post
-/sbin/ldconfig
-%{TZ_COMM_DATA}/%{name}/init_db.sh
-mkdir -p %{_unitdir}/multi-user.target.wants/
+%{TZ_SYS_GLOBALUSER_DATA}/%{name}/init_db.sh
 
 %post -n libbluetooth-share -p /sbin/ldconfig
 
@@ -141,14 +124,13 @@ mkdir -p %{_unitdir}/multi-user.target.wants/
 
 %files
 %manifest %{name}.manifest
-%attr(755, network_fw, network_fw)%{TZ_COMM_DATA}/%{name}
 %{_bindir}/%{name}
-#%{_datadir}/dbus-1/system-services/org.bluetooth.share.service
-%{TZ_COMM_DATA}/%{name}/init_db.sh
 %{_unitdir}/%{name}.service
 %{_unitdir}/%{name}-start.service
-%{upgrade_script_path}/500.%{name}_upgrade.sh
+%{TZ_SYS_UPGRADE_SCRIPTS}/500.%{name}_upgrade.sh
+%{TZ_SYS_GLOBALUSER_DATA}/%{name}/init_db.sh
 %{upgrade_data_path}/init_db.sh
+#%{_datadir}/dbus-1/system-services/org.bluetooth.share.service
 %license LICENSE.APLv2
 
 %files -n libbluetooth-share
@@ -163,10 +145,6 @@ mkdir -p %{_unitdir}/multi-user.target.wants/
 
 %if 0%{?gcov:1}
 %files gcov
-%manifest %{name}.manifest
-%{_bindir}/gtest-bluetooth-share
-%{_libdir}/libbt-share.so*
-%{_datadir}/gcov/obj/*
-%exclude %{_libdir}/debug/*
-%exclude %{_libdir}/debug/.build-id/*
+%{_bindir}/bt-share-gtest
+%{_datadir}/gcov/*
 %endif
index 931a24d..1fe0c47 100644 (file)
@@ -1,70 +1,22 @@
-# Copyright (c) 2014-2017 Samsung Electronics Co., Ltd All Rights Reserved
-#
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-#
-# @file        CMakeLists.txt
-# @author
-# @brief       Cmake for tests
-#
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+SET(BT_SHARE_TEST "bt-share-gtest")
 
-SET(TARGET_GTEST_TESTS "gtest-bluetooth-share")
-
-INCLUDE_DIRECTORIES(/usr/include)
-INCLUDE_DIRECTORIES(/usr/include/db-util)
-INCLUDE_DIRECTORIES(/usr/include/glib-2.0)
-INCLUDE_DIRECTORIES(/usr/include/bt-service)
-INCLUDE_DIRECTORIES(/usr/include/notification)
-INCLUDE_DIRECTORIES(/usr/include/storage)
-INCLUDE_DIRECTORIES(/usr/include/appfw)
-INCLUDE_DIRECTORIES(/usr/lib/glib-2.0/include/)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/lib)
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/app)
-
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-SET(EXEC_PREFIX "\${prefix}")
-SET(INCLUDEDIR "/usr/include")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(testpkgs REQUIRED glib-2.0)
-
-SET(GTEST_TESTS_SOURCES
-bt-share-test.cpp
-)
-
-SET(BLUETOOTH_SHARE_MOCK "bluetooth-share-mock")
-SET(BLUETOOTH_SHARE_MOCK_SRCS
-       mock/bt-share-mock.c)
-SET(BLUETOOTH_SHARE_MOCK_CFLAGS "${CMAKE_C_FLAGS}" )
-ADD_LIBRARY(${BLUETOOTH_SHARE_MOCK} SHARED ${BLUETOOTH_SHARE_MOCK_SRCS})
-TARGET_LINK_LIBRARIES(${BLUETOOTH_SHARE_MOCK} -ldl)
-SET_TARGET_PROPERTIES(${BLUETOOTH_SHARE_MOCK} PROPERTIES
-       COMPILE_FLAGS ${BLUETOOTH_SHARE_MOCK_CFLAGS}
-)
-
-ADD_EXECUTABLE(${TARGET_GTEST_TESTS}
-       ${GTEST_TESTS_SOURCES}
-)
-
-TARGET_LINK_LIBRARIES(${TARGET_GTEST_TESTS}
-       ${pkgs_LDFLAGS}
-       ${pkgs_LIBRARIES}
-       gtest
-       -L${CMAKE_SOURCE_DIR}/lib
-       -lbluetooth-share-api
-       -L${CMAKE_SOURCE_DIR}/app
-       -lbt-share
-)
-
-INSTALL(TARGETS ${TARGET_GTEST_TESTS} DESTINATION /usr/bin)
+INCLUDE_DIRECTORIES(${pkgs_INCLUDE_DIRS})
+LINK_DIRECTORIES(${pkgs_LIBRARY_DIRS})
+
+SET(BT_SHARE_MOCK "bt-share-mock")
+SET(BT_SHARE_MOCK_SRCS mock/bt-share-mock.c)
+ADD_LIBRARY(${BT_SHARE_MOCK} SHARED ${BT_SHARE_MOCK_SRCS})
+TARGET_LINK_LIBRARIES(${BT_SHARE_MOCK} dl)
+
+ADD_DEFINITIONS("-DBT_SHARE_TEST")
+
+FILE(GLOB APP_SRCS ${CMAKE_SOURCE_DIR}/app/*.c)
+SET(TEST_SRCS bt-share-test.cpp)
+ADD_EXECUTABLE(${BT_SHARE_TEST} ${TEST_SRCS} ${APP_SRCS})
+TARGET_LINK_LIBRARIES(${BT_SHARE_TEST} ${BT_SHARE_LIB} gtest)
+SET_TARGET_PROPERTIES(${BT_SHARE_TEST} PROPERTIES POSITION_INDEPENDENT_CODE ON)
+TARGET_LINK_LIBRARIES(${BT_SHARE_TEST} ${pkgs_LIBRARIES})
+TARGET_COMPILE_OPTIONS(${BT_SHARE_TEST} PUBLIC ${pkgs_CFLAGS_OTHER})
+INSTALL(TARGETS ${BT_SHARE_TEST} DESTINATION ${BIN_INSTALL_DIR})
diff --git a/tests/run_coverage.sh b/tests/run_coverage.sh
deleted file mode 100755 (executable)
index 24fb7ab..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-export LD_LIBRARY_PATH=..:.:../lib:../app:$LD_LIBRARY_PATH
-pushd ../
-RootDir=$PWD
-popd
-
-unitTestFile=gtest-bluetooth-share
-if [ ! -x  "./$unitTestFile" ]
-then
-    echo "$unitTestFile file does not exist!"
-    exit -1
-fi
-#./$unitTestFile
-
-LD_PRELOAD=./libbluetooth-share-mock.so ./$unitTestFile
-
-CMakeDir=${RootDir}/app/CMakeFiles/bt-share.dir/
-CoverageDir=${RootDir}/coverage
-
-pushd $CMakeDir
-
-    for obj in `ls *.o`
-    do
-        gcov -b -c $obj
-    done
-
-    if [ -f /usr/bin/lcov ]
-    then
-        lcov -c -d . --exclude "/usr/lib/gcc/armv7l-tizen-linux-gnueabi/9.2.0/include/c++/*" -o cov.info
-        genhtml cov.info -o ${CoverageDir}
-        echo "Coverage test result created! [${CoverageDir}]"
-    else
-        echo "lcov does not exist!"
-    fi
-popd