2 # Communication modules for pkg-mgr client lib and server process
3 # By Youmin Ha <youmin.ha@samsung.com>
5 cmake_minimum_required(VERSION 2.6)
6 #set(CMAKE_SKIP_BUILD_RPATH true)
7 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
11 if(DEFINED ${VERSION})
12 message("VERSION: ${VERSION}")
14 message("VERSION is not defined. set it as 0.1.0")
17 if(DEFINED ${VERSION_MAJOR})
18 message("VERSION_MAJOR: ${VERSION_MAJOR}")
20 message( "VERSION_MAJOR is not defined. set it as 0")
23 message(STATUS "version/major : ${VERSION} / ${VERSION_MAJOR}")
25 ### Get required CFLAGS, LDFLAGS from pkg-config
27 include(FindPkgConfig)
28 pkg_check_modules(installer_client_pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 dlog)
29 foreach(flag ${installer_client_pkgs_CFLAGS})
30 set(installer_client_pkgs_CFLAGS_str "${installer_client_pkgs_CFLAGS_str} ${flag}")
33 pkg_check_modules(comm_pkgs REQUIRED glib-2.0 dbus-glib-1 dlog cynara-client cynara-creds-dbus cynara-session)
34 foreach(flag ${comm_pkgs_CFLAGS})
35 set(comm_pkgs_CFLAGS_str "${comm_pkgs_CFLAGS_str} ${flag}")
38 pkg_check_modules(broadcast_server_pkgs REQUIRED dbus-1 dlog)
39 foreach(flag ${broadcast_server_pkgs_CFLAGS})
40 set(broadcast_server_pkgs_CFLAGS_str "${broadcast_server_pkgs_CFLAGS_str} ${flag}")
43 pkg_check_modules(installer_pkgs REQUIRED glib-2.0 dbus-1 dlog pkgmgr-info)
44 foreach(flag ${installer_pkgs_CFLAGS})
45 set(installer_pkgs_CFLAGS_str "${installer_pkgs_CFLAGS_str} ${flag}")
48 ### Set current binary dir to be included (for generated *.h files)
49 include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
51 ### Create dbus-glib bindings headers (client/server) from xml by dbus-binding-tool
53 # comm_pkg_mgr : package manger interface (client - package manager process)
54 add_custom_target(comm_pkg_mgr_server_dbus_bindings.h
55 COMMAND dbus-binding-tool --prefix=pkgmgr --mode=glib-server
56 ${CMAKE_CURRENT_SOURCE_DIR}/comm_pkg_mgr.xml
57 --output=${CMAKE_CURRENT_BINARY_DIR}/comm_pkg_mgr_server_dbus_bindings.h
61 add_custom_command(OUTPUT comm_pkg_mgr_client_gdbus_generated.c comm_pkg_mgr_client_gdbus_generated.h
62 COMMAND gdbus-codegen --generate-c-code comm_pkg_mgr_client_gdbus_generated
63 --interface-prefix pkgmgr ${CMAKE_CURRENT_SOURCE_DIR}/comm_pkg_mgr.xml
66 add_custom_target(comm_status_broadcast_server_dbus_bindings.h
67 COMMAND dbus-binding-tool --prefix=status_broadcast --mode=glib-server
68 ${CMAKE_CURRENT_SOURCE_DIR}/comm_status_broadcast.xml
69 --output=${CMAKE_CURRENT_BINARY_DIR}/comm_status_broadcast_server_dbus_bindings.h
76 # Send request, get status signal
77 add_library(pkgmgr_installer_client SHARED
79 comm_pkg_mgr_client_gdbus_generated.c
81 set_target_properties(pkgmgr_installer_client PROPERTIES SOVERSION ${VERSION_MAJOR})
82 set_target_properties(pkgmgr_installer_client PROPERTIES VERSION ${VERSION})
83 set_target_properties(pkgmgr_installer_client PROPERTIES COMPILE_FLAGS "${installer_client_pkgs_CFLAGS_str}")
84 target_link_libraries(pkgmgr_installer_client ${installer_client_pkgs_LDFLAGS})
85 add_dependencies(pkgmgr_installer_client comm_pkg_mgr_client_gdbus_generated.h comm_pkg_mgr_client_gdbus_generated.c)
87 ## pkg-mgr server for PMS
89 add_library(pkgmgr_installer_pkg_mgr_server STATIC
90 comm_pkg_mgr_server.c)
91 set_target_properties(pkgmgr_installer_pkg_mgr_server PROPERTIES SOVERSION ${VERSION_MAJOR})
92 set_target_properties(pkgmgr_installer_pkg_mgr_server PROPERTIES VERSION ${VERSION})
93 set_target_properties(pkgmgr_installer_pkg_mgr_server PROPERTIES COMPILE_FLAGS "${comm_pkgs_CFLAGS_str}")
94 target_link_libraries(pkgmgr_installer_pkg_mgr_server ${comm_pkgs_LDFLAGS})
95 add_dependencies(pkgmgr_installer_pkg_mgr_server comm_pkg_mgr_server_dbus_bindings.h)
97 ## status-broadcast server for backend/downloader
99 add_library(pkgmgr_installer_status_broadcast_server SHARED
100 comm_status_broadcast_server_dbus.c
102 set_target_properties(pkgmgr_installer_status_broadcast_server PROPERTIES SOVERSION ${VERSION_MAJOR})
103 set_target_properties(pkgmgr_installer_status_broadcast_server PROPERTIES VERSION ${VERSION})
104 set_target_properties(pkgmgr_installer_status_broadcast_server PROPERTIES COMPILE_FLAGS "${broadcast_server_pkgs_CFLAGS_str}")
105 target_link_libraries(pkgmgr_installer_status_broadcast_server ${broadcast_server_pkgs_LDFLAGS})
106 add_dependencies(pkgmgr_installer_status_broadcast_server comm_status_broadcast_server_dbus_bindings.h)
109 ## pkgmgr_installer object (by youmin.ha)
110 # This library is for installer backend
111 add_library(pkgmgr_installer SHARED pkgmgr_installer.c)
112 set_target_properties(pkgmgr_installer PROPERTIES SOVERSION ${VERSION_MAJOR})
113 set_target_properties(pkgmgr_installer PROPERTIES VERSION ${VERSION})
114 set_target_properties(pkgmgr_installer PROPERTIES COMPILE_FLAGS "${installer_pkgs_CFLAGS_str}")
115 target_link_libraries(pkgmgr_installer pkgmgr_installer_status_broadcast_server ${installer_pkgs_LDFLAGS})
119 configure_file(pkgmgr-installer-client.pc.in ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-installer-client.pc @ONLY)
120 configure_file(pkgmgr-installer-status-broadcast-server.pc.in ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-installer-status-broadcast-server.pc @ONLY)
121 configure_file(pkgmgr-installer.pc.in ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-installer.pc @ONLY)
126 pkgmgr_installer_client
127 pkgmgr_installer_status_broadcast_server
129 DESTINATION ${LIB_INSTALL_DIR}
130 COMPONENT RuntimeLibraries)
133 comm_status_broadcast_server.h
136 DESTINATION include/pkgmgr)
140 ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-installer-client.pc
141 ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-installer-status-broadcast-server.pc
142 ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-installer.pc
143 DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)