-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})
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.
-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)
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 */
}
/* 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)
}
/* 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)
{
}
/* 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)
{
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 */
+}
-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})
-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}
-%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
%package -n libbluetooth-share
Summary: Bluetooth share library
-Group: Development/Libraries
+Group: Network & Connectivity/Bluetooth
Requires: %{name} = %{version}-%{release}
%description -n libbluetooth-share
%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
%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}
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
%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
%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
-# 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})
+++ /dev/null
-#!/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