############################# compiler flags ##################################
SET(SDBD_SRCS
- src/sdb.c
- src/fdevent.c
- src/transport.c
- src/transport_local.c
- src/transport_usb.c
- src/sockets.c
- src/services.c
- src/file_sync_service.c
- src/usb_linux_client.c
- src/utils.c
- src/socket_inaddr_any_server.c
- src/socket_local_client.c
- src/socket_local_server.c
- src/socket_loopback_client.c
- src/socket_loopback_server.c
- src/socket_network_client.c
- src/properties.c
- src/sdktools.c
- src/strutils.c
- src/init.c
- src/fileutils.c
- src/commandline_sdbd.c
- src/usb_linux_client.c
- src/usb_funcfs_client.c
- src/transport_security.c
+ src/sdb.c
+ src/fdevent.c
+ src/transport.c
+ src/transport_local.c
+ src/transport_usb.c
+ src/sockets.c
+ src/services.c
+ src/file_sync_service.c
+ src/usb_linux_client.c
+ src/utils.c
+ src/socket_inaddr_any_server.c
+ src/socket_local_client.c
+ src/socket_local_server.c
+ src/socket_loopback_client.c
+ src/socket_loopback_server.c
+ src/socket_network_client.c
+ src/sdktools.c
+ src/strutils.c
+ src/commandline_sdbd.c
+ src/usb_linux_client.c
+ src/usb_funcfs_client.c
+ src/default_plugin_auth.c
+ src/default_plugin_basic.c
+ src/default_plugin_main.c
+ src/default_plugin_event.c
+ src/default_plugin_appcmd.c
+ src/default_plugin_shellcmd.c
+ src/hashtable.c
+ src/plugin.c
+ src/plugin_encrypt.c
+ src/descs_strings.c
+ src/sdbd.c
+)
+
+SET(SDBD_SERVICE_SRCS
+ src/sdb.c
+ src/fdevent.c
+ src/transport.c
+ src/transport_local.c
+ src/transport_usb.c
+ src/sockets.c
+ src/file_sync_service.c
+ src/usb_linux_client.c
+ src/utils.c
+ src/socket_inaddr_any_server.c
+ src/socket_local_client.c
+ src/socket_local_server.c
+ src/socket_loopback_client.c
+ src/socket_loopback_server.c
+ src/socket_network_client.c
+ src/sdktools.c
+ src/strutils.c
+ src/commandline_sdbd.c
+ src/usb_linux_client.c
+ src/usb_funcfs_client.c
+ src/default_plugin_auth.c
+ src/default_plugin_basic.c
+ src/default_plugin_main.c
+ src/default_plugin_event.c
+ src/default_plugin_appcmd.c
+ src/default_plugin_shellcmd.c
+ src/hashtable.c
+ src/plugin.c
+ src/plugin_encrypt.c
+ src/descs_strings.c
+ src/services.c
+ src/sdbd_service.c
+)
+
+SET(SDBD_SUBS
+ src/subprocess.c
)
include(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED
- libtzplatform-config
- capi-system-info
- vconf
- glib-2.0
- dbus-1
- dbus-glib-1
- dlog
- )
-
+ libtzplatform-config
+ capi-system-info
+ capi-system-device
+ vconf
+ glib-2.0
+ gio-2.0
+ dlog
+)
+
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
ADD_DEFINITIONS("-DSUPPORT_ENCRYPT")
IF (_ARM_TARGET)
- ADD_DEFINITIONS("-DANDROID_GADGET=1")
+ ADD_DEFINITIONS("-DANDROID_GADGET=1")
ENDIF (_ARM_TARGET)
-IF(TARGET_ARCH STREQUAL x86)
- ADD_DEFINITIONS("-DTARGET_ARCH_X86")
-ELSE()
- ADD_DEFINITIONS("-DTARGET_ARCH_ARM")
-ENDIF()
-
IF(WEARABLE_PROFILE STREQUAL on)
- ADD_DEFINITIONS("-D_WEARABLE")
+ ADD_DEFINITIONS("-D_WEARABLE")
ENDIF()
+# Get systemd
+pkg_check_modules(SYSTEMD REQUIRED libsystemd)
+foreach(flag ${SYSTEMD_CFLAGS})
+ set(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+endforeach(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
find_package(Threads REQUIRED)
ADD_EXECUTABLE(sdbd ${SDBD_SRCS})
-TARGET_LINK_LIBRARIES(sdbd -pie -lsmack -lresolv -ldl ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS})
+ADD_EXECUTABLE(sdbd-user ${SDBD_SUBS})
+ADD_EXECUTABLE(sdbd-service ${SDBD_SERVICE_SRCS})
+TARGET_LINK_LIBRARIES(sdbd -pie -lsmack -lresolv -ldl ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS} ${SYSTEMD_LDFLAGS})
+TARGET_LINK_LIBRARIES(sdbd-service -pie -lsmack -lresolv -ldl ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS} ${SYSTEMD_LDFLAGS})
+TARGET_LINK_LIBRARIES(sdbd-user -pie ${CMAKE_THREAD_LIBS_INIT} ${pkgs_LDFLAGS})
set_property(
- TARGET sdbd
- PROPERTY COMPILE_DEFINITIONS
- SDB_HOST=0
- _DROP_PRIVILEGE
- _FILE_OFFSET_BITS=64
+ TARGET sdbd
+ PROPERTY COMPILE_DEFINITIONS
+ SDB_HOST=0
+ _DROP_PRIVILEGE
+ _FILE_OFFSET_BITS=64
)
set_property(
- TARGET sdbd
- APPEND PROPERTY COMPILE_DEFINITIONS
- _XOPEN_SOURCE
- _GNU_SOURCE
- HAVE_FORKEXEC
+ TARGET sdbd
+ APPEND PROPERTY COMPILE_DEFINITIONS
+ _XOPEN_SOURCE
+ _GNU_SOURCE
+ HAVE_FORKEXEC
)
+set_property(
+ TARGET sdbd-service
+ PROPERTY COMPILE_DEFINITIONS
+ SDB_HOST=0
+ _DROP_PRIVILEGE
+ _FILE_OFFSET_BITS=64
+)
+
+set_property(
+ TARGET sdbd-service
+ APPEND PROPERTY COMPILE_DEFINITIONS
+ _XOPEN_SOURCE
+ _GNU_SOURCE
+ HAVE_FORKEXEC
+)
+
+
if(USE_FUNCTION_FS)
- set_property(
- TARGET sdbd
- APPEND PROPERTY COMPILE_DEFINITIONS
- USB_FUNCFS
- )
+ set_property(
+ TARGET sdbd
+ APPEND PROPERTY COMPILE_DEFINITIONS
+ USB_FUNCFS
+ )
endif()
-install(TARGETS sdbd DESTINATION /usr/sbin)
+CONFIGURE_FILE(packaging/sdbd.pc.in packaging/sdbd.pc @ONLY)
+install(TARGETS sdbd sdbd-user sdbd-service DESTINATION /usr/sbin)
install(FILES script/sdbd DESTINATION /etc/init.d)
+# Extract descriptors and strings for systemd socket activation
+add_executable(extract_descs_strings src/extract_descs_strings.c src/descs_strings.c)
+add_custom_command(OUTPUT descs strs
+ COMMAND ./extract_descs_strings
+ DEPENDS extract_descs_strings)
+add_custom_target(descs_strings ALL DEPENDS descs strs)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/descs DESTINATION /etc/sdbd)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/strs DESTINATION /etc/sdbd)
# Optionally build unit tests binary -- could be helpful during further development
if(BUILD_UNIT_TESTS)
- enable_testing()
- add_subdirectory(test)
+ enable_testing()
+ add_subdirectory(test)
endif()