CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(libtcore C)
-
-#INCLUDE(FindPkgConfig)
+PROJECT(libtcore C CXX)
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(EXEC_PREFIX "\${prefix}")
-SET(LIBDIR "\${prefix}/lib")
+SET(LIBDIR ${LIB_INSTALL_DIR})
SET(INCLUDEDIR "\${prefix}/include")
# Set required packages
INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 gudev-1.0)
+pkg_check_modules(pkgs REQUIRED glib-2.0 gobject-2.0 libtzplatform-config)
FOREACH(flag ${pkgs_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR}/include ${EXTRA_CFLAGS} -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align")
+INCLUDE_DIRECTORIES(
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/include/internal
+ ${CMAKE_SOURCE_DIR}/include/type
+)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR}/include ${EXTRA_CFLAGS} -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align -O2 -Wall -Wno-array-bounds -Wno-empty-body -Wno-ignored-qualifiers -Wshadow -Wwrite-strings -Wswitch-default -Wno-unused-but-set-variable")
+
+IF (BUILD_GCOV)
+# -fvisibility option should be "default" to call internal functions for gtest
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=default -fPIC -Wno-unused-function -fprofile-arcs -ftest-coverage")
+ADD_DEFINITIONS("-DTCORE_HAL_TEST")
+ENDIF (BUILD_GCOV)
ADD_DEFINITIONS("-DFEATURE_TLOG_DEBUG")
ADD_DEFINITIONS("-DTCORE_LOG_TAG=\"TCORE\"")
+#ADD_DEFINITIONS("-DTCORE_HAL_DEBUG")
ADD_DEFINITIONS("-DTCORE_VERSION=\"${VERSION}\"")
+ADD_DEFINITIONS("-DMODEMS_PATH=\"${LIBDIR}/telephony/plugins/modems/\"")
MESSAGE(${CMAKE_C_FLAGS})
-MESSAGE(${CMAKE_EXE_LINKER_FLAGS})
+#MESSAGE(${CMAKE_EXE_LINKER_FLAGS})
+MESSAGE("FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
+
+IF (ARCH_EMUL)
+ ADD_DEFINITIONS("-DEMULATOR")
+ENDIF (ARCH_EMUL)
SET(SRCS
- src/server.c
- src/plugin.c
- src/hal.c
- src/at.c
- src/udev.c
- src/communicator.c
- src/storage.c
- src/queue.c
- src/user_request.c
- src/util.c
- src/core_object.c
- src/co_modem.c
- src/co_network.c
- src/co_ps.c
- src/co_context.c
- src/co_sim.c
- src/co_sat.c
- src/co_sap.c
- src/co_call.c
- src/co_ss.c
- src/co_sms.c
- src/co_phonebook.c
- src/co_gps.c
- src/mux.c
+ src/server.c
+ src/manager.c
+ src/plugin.c
+ src/hal.c
+ src/at.c
+ src/communicator.c
+ src/storage.c
+ src/queue.c
+ src/subscription.c
+ src/user_request.c
+ src/util.c
+ src/core_object/core_object.c
+ src/core_object/co_modem.c
+ src/core_object/co_sim.c
+ src/core_object/co_network.c
+ src/core_object/co_call.c
+ src/core_object/co_sms.c
+ src/core_object/co_ss.c
+ src/core_object/co_phonebook.c
+ src/core_object/co_ps.c
+ src/core_object/co_context.c
+ src/core_object/co_sat.c
+ src/core_object/co_sap.c
+ src/core_object/co_gps.c
+ src/core_object/co_custom.c
+ src/mux.c
)
# library build
ADD_LIBRARY(tcore SHARED ${SRCS})
-TARGET_LINK_LIBRARIES(tcore ${pkgs_LDFLAGS})
+
+IF (BUILD_GCOV)
+ TARGET_LINK_LIBRARIES(tcore ${pkgs_LDFLAGS} -ldl -lgcov)
+ELSE (BUILD_GCOV)
+ TARGET_LINK_LIBRARIES(tcore ${pkgs_LDFLAGS})
+ENDIF (BUILD_GCOV)
+
SET_TARGET_PROPERTIES(tcore PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME tcore)
# pkgconfig file
# install
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include/tcore)
INSTALL(TARGETS tcore
- LIBRARY DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tcore.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(FILES ${CMAKE_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME libtcore)
+ LIBRARY DESTINATION ${LIBDIR})
+
+# adding for HAL test support
+IF (BUILD_GCOV)
+ INSTALL(TARGETS tcore DESTINATION ${LIBDIR} COMPONENT RuntimeLibraries)
+ENDIF (BUILD_GCOV)
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tcore.pc DESTINATION ${LIBDIR}/pkgconfig)
+
+#gtest pkg build
+IF (BUILD_GCOV)
+ ADD_SUBDIRECTORY(gtest)
+ENDIF (BUILD_GCOV)
+
+#ADD_SUBDIRECTORY(unit-test)