Add Parcel Library
[platform/core/base/bundle.git] / parcel / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2 PROJECT(parcel C CXX)
3
4 INCLUDE(FindPkgConfig)
5 PKG_CHECK_MODULES(pkgs REQUIRED dlog capi-base-common)
6
7 FOREACH(flag ${pkgs_CFLAGS})
8         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
9 ENDFOREACH(flag)
10 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -flto -Wall -Werror -Winline")
11
12 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++14")
13 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
14 SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
15
16 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
17 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/)
18 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/api)
19
20 AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/parcel PARCEL_SRCS)
21
22 ADD_LIBRARY (${PROJECT_NAME} SHARED ${PARCEL_SRCS})
23
24 SET_TARGET_PROPERTIES(parcel PROPERTIES SOVERSION ${VERSION_MAJOR})
25 SET_TARGET_PROPERTIES(parcel PROPERTIES VERSION "${VERSION}")
26
27 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
28 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-pie")
29 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} bundle)
30
31 ### Make pkgconfig file
32 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
33 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/parcel.pc.in
34   ${CMAKE_BINARY_DIR}/parcel.pc @ONLY)
35
36 ### Install
37 INSTALL(TARGETS parcel DESTINATION ${LIB_INSTALL_DIR})
38 INSTALL(FILES ${CMAKE_BINARY_DIR}/parcel.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
39
40 SET(HEADER_PARCEL
41   common.hh
42   parcel.hh
43   parcelable.hh
44 )
45
46 FOREACH(hfile ${HEADER_PARCEL})
47   INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/parcel)
48 ENDFOREACH(hfile)
49
50 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/api/parcel.h
51   DESTINATION include/parcel)