Make a gcov package for measuring coverage easier
[platform/core/appfw/message-port.git] / CMakeLists.txt
old mode 100755 (executable)
new mode 100644 (file)
index 150a797..65b3c11
@@ -1,34 +1,16 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-
-SET(this_target "message-port")
-
-SET(CMAKE_INSTALL_PREFIX /usr)
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-
-## OUTPUT PATHS
-SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
+PROJECT(message-port C)
+SET(this_target message-port)
 
 INCLUDE_DIRECTORIES (
-       /usr/include
-       /usr/include/appfw
-       /usr/include/dlog
-       /usr/include/glib-2.0
-       ${LIB_INSTALL_DIR}/glib-2.0/include
-       /usr/include/chromium
-       include
+       ${CMAKE_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/src/inc
        )
 
-SET (${this_target}_SOURCE_FILES
-       src/IpcClient.cpp
-       src/message-port.cpp
-       src/message-port-messages.cpp
-       src/MessagePortProxy.cpp
-)
-
-SET(requires "dlog bundle glib-2.0 aul chromium")
+SET(${this_target}_requires "dlog bundle glib-2.0 gio-2.0 aul openssl capi-base-common pkgmgr-info gio-unix-2.0")
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(${this_target} REQUIRED ${requires})
+pkg_check_modules(${this_target} REQUIRED ${${this_target}_requires})
+
 FOREACH(flag ${${this_target}_CFLAGS})
     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
@@ -40,26 +22,16 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibi
 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
 
 ## SET CPP COMPILER FLAGS
-SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden")
-
-IF("${ARCH}" STREQUAL "arm")
-    ADD_DEFINITIONS("-DTARGET")
-ENDIF("${ARCH}" STREQUAL "arm")
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
-ADD_DEFINITIONS("-DSLP_DEBUG")
+SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS} -fvisibility=hidden")
 
 ## Create Library
-ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
+AUX_SOURCE_DIRECTORY(src SOURCES)
+ADD_LIBRARY(${this_target} SHARED ${SOURCES})
 
 ## SET LINKER FLAGS
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
+SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed -Wl,--no-undefined -Wl,--rpath=${LIB_INSTALL_DIR}")
 
-TARGET_LINK_LIBRARIES(${this_target} "-ldlog" )
-TARGET_LINK_LIBRARIES(${this_target} "-lbundle" )
-TARGET_LINK_LIBRARIES(${this_target} "-lglib-2.0" )
-TARGET_LINK_LIBRARIES(${this_target} "-lchromium" )
-TARGET_LINK_LIBRARIES(${this_target} "-laul" )
+TARGET_LINK_LIBRARIES(${this_target} ${${this_target}_LDFLAGS})
 
 SET_TARGET_PROPERTIES(${this_target}
        PROPERTIES
@@ -68,17 +40,26 @@ SET_TARGET_PROPERTIES(${this_target}
        CLEAN_DIRECT_OUTPUT 1
        )
 
-
 # pkgconfig file
-CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
+SET(PC_NAME ${this_target})
+SET(PACKAGE_DESCRIPTION "Message Port internal library")
+SET(VERSION ${FULLVER})
+SET(PC_REQUIRED ${${this_target}_requires})
+
+## OUTPUT PATHS
+SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
+ADD_CUSTOM_COMMAND(
+           TARGET ${this_target} POST_BUILD
+           COMMAND ln -s ./libmessage-port.so.${MAJORVER} ${LIBRARY_OUTPUT_PATH}/libcapi-message-port.so.${MAJORVER})
+
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/capi-${this_target}.pc.in ${CMAKE_SOURCE_DIR}/capi-${this_target}.pc @ONLY)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/capi-${this_target}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+CONFIGURE_FILE(${PROJECT_NAME}.conf.in ${PROJECT_NAME}.conf @ONLY)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.conf DESTINATION ${SYSCONF_INSTALL_DIR}/dbus-1/session.d/)
 
 INSTALL(TARGETS ${this_target} DESTINATION ${LIB_INSTALL_DIR})
 
 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/appfw FILES_MATCHING PATTERN "*.h")
-
-INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION ${LIB_INSTALL_DIR}
-               FILES_MATCHING PATTERN "*.so*" 
-               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                      
-                    GROUP_EXECUTE GROUP_READ
-                    WORLD_EXECUTE WORLD_READ)
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION ${LIB_INSTALL_DIR} FILES_MATCHING PATTERN "*.so*")