Fix JSON response lifecycle issues
[apps/agl-service-navigation.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8.11)
2
3 INCLUDE(FindPkgConfig)
4
5 set(PROJECT_NAME "agl-service-navigation")
6 set(PROJECT_PRETTY_NAME "AFM binding for navigation service")
7 set(PROJECT_DESCRIPTION "Binding for AGL Navigation API")
8 set(PROJECT_INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include)
9 set(PROJECT_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
10 set(PROJECT_API_VERSION 0.1.0)
11 set(PROJECT_URL "https://wiki.automotivelinux.org/eg-navi")
12
13 # Set a default build type if none was specified
14 if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
15   message(STATUS "Setting build type to 'Release' as none was specified.")
16   set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
17 endif()
18
19 project(navi_binder)
20
21 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC ")
22
23 set(CMAKE_INCLUDE_CURRENT_DIR ON)
24
25 pkg_check_modules(DBUSCXX REQUIRED dbus-c++-1)
26 pkg_check_modules(JSON REQUIRED json-c)
27 pkg_check_modules(AFBWSC REQUIRED libafbwsc)
28
29 include_directories( ${PROJECT_SOURCE_DIR}/libnavi/include ${PROJECT_SOURCE_DIR}/include ${DBUSCXX_INCLUDE_DIRS} ${JSON_INCLUDE_DIRS} ${AFBWSC_INCLUDE_DIRS} )
30
31 add_library( naviapi-agl SHARED libnavi/src/navicore.cpp libnavi/src/navicorelistener.cpp libnavi/src/BinderClient.cpp libnavi/src/JsonRequestGenerator.cpp libnavi/src/JsonResponseAnalyzer.cpp libnavi/src/RequestManage.cpp )
32 target_link_libraries( naviapi-agl ${JSON_LIBRARIES} ${AFBWSC_LIBRARIES} )
33 set_target_properties(naviapi-agl PROPERTIES VERSION 0.1.0 SOVERSION 0)
34
35 install(TARGETS naviapi-agl LIBRARY DESTINATION ${PROJECT_LIBDIR})
36 install(FILES ${PROJECT_SOURCE_DIR}/libnavi/include/libnavicore.hpp DESTINATION ${PROJECT_INCLUDEDIR})
37
38 add_library( NaviAPIService SHARED src/api.cpp src/analyze_request.cpp src/binder_reply.cpp src/genivi_request.cpp )
39
40 target_link_libraries( NaviAPIService ${DBUSCXX_LIBRARIES} ${JSON_LIBRARIES} ${AFBWSC_LIBRARIES} )
41
42 ##########################################################################
43 # AGL binding
44 configure_file(config.xml.in config.xml)
45 set(BINARY_NAME "naviapi.wgt")
46
47 add_custom_command(
48         OUTPUT ${BINARY_NAME}
49         DEPENDS NaviAPIService
50         COMMAND rm -rf package
51         COMMAND mkdir -p package/root
52         COMMAND mkdir -p package/root/lib
53         COMMAND mv config.xml package/root/
54         COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/navigation.png package/root/icon.png
55         COMMAND mv libNaviAPIService.so package/root/lib
56         COMMAND wgtpkg-pack -f -o package/${BINARY_NAME} package/root
57 )
58 add_custom_target(widget ALL DEPENDS ${BINARY_NAME})
59
60 #generate configure file
61 configure_file(libnaviapi-agl.pc.in libnaviapi-agl.pc @ONLY)
62 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnaviapi-agl.pc
63   DESTINATION
64   ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)