Initial repository commit
[platform/core/api/uwb.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 SET(CAPI_UWB "capi-network-uwb")
3
4 PROJECT(${CAPI_UWB} C CXX)
5
6 MESSAGE(" - Defining...configuration variables")
7 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
8
9 SET(LIB ${LIB_PATH})
10 SET(LIBDIR ${PREFIX}/${LIB_PATH})
11
12 SET(INC_DIR include)
13 INCLUDE_DIRECTORIES(${INC_DIR})
14 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
15
16 MESSAGE(" - Checking...packages dependency")
17 SET(COMMON_DEPS dlog gio-2.0 glib-2.0 gio-unix-2.0 capi-system-info)
18 SET(PC_DEPS "")
19
20 MESSAGE(" - Making...build configuration")
21 INCLUDE(FindPkgConfig)
22 pkg_check_modules(${CAPI_UWB} REQUIRED ${COMMON_DEPS})
23 FOREACH(flag ${${CAPI_UWB}_CFLAGS})
24     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
25 ENDFOREACH(flag)
26 SET(DEFAULT_CFLAGS "${EXTRA_CFLAGS} -Wall -fPIE -fPIC -Werror -g -fvisibility=hidden")
27 IF(BUILD_GCOV)
28         SET(GCOV_C_FLAGS "-fprofile-arcs -ftest-coverage")
29 ENDIF(BUILD_GCOV)
30 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DEFAULT_CFLAGS} ${GCOV_C_FLAGS}")
31 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
32
33 IF("${ARCH}" STREQUAL "arm")
34     ADD_DEFINITIONS("-DTARGET")
35 ENDIF("${ARCH}" STREQUAL "arm")
36
37 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
38 ADD_DEFINITIONS("-DTIZEN_DEBUG")
39
40 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,--rpath=${LIBDIR}")
41
42 MESSAGE(" - Generating...d-bus code")
43 FIND_PROGRAM(GDBUS_CODEGEN NAMES gdbus-codegen)
44 EXEC_PROGRAM(${GDBUS_CODEGEN} ARGS
45                 " \\
46                 --generate-c-code ${CMAKE_CURRENT_SOURCE_DIR}/src/uwb_gdbus \\
47                 --interface-prefix org.tizen.uwb. \\
48                 ${CMAKE_CURRENT_SOURCE_DIR}/src/uwb-gdbuslib.xml \\
49                 ")
50
51 MESSAGE(" - Building...shared library")
52 SET(SOURCES src/uwb.c
53             src/uwb_gdbus.c
54             src/uwb_util.c)
55
56 ADD_LIBRARY(${CAPI_UWB} SHARED ${SOURCES})
57 TARGET_LINK_LIBRARIES(${CAPI_UWB} ${${CAPI_UWB}_LDFLAGS} pthread)
58
59 SET_TARGET_PROPERTIES(${CAPI_UWB}
60      PROPERTIES
61      VERSION ${FULLVER}
62      SOVERSION ${MAJORVER}
63      CLEAN_DIRECT_OUTPUT 1
64 )
65
66 MESSAGE(" - Installing...the library and header files")
67 INSTALL(TARGETS ${CAPI_UWB} DESTINATION ${LIB})
68 INSTALL(
69         DIRECTORY include/ DESTINATION include
70         FILES_MATCHING
71         PATTERN "include/*.h"
72         )
73
74 SET(PC_NAME ${CAPI_UWB})
75 SET(PC_REQUIRED ${PC_DEPS})
76 SET(PC_LDFLAGS -l${CAPI_UWB})
77
78 CONFIGURE_FILE(
79     ${CAPI_UWB}.pc.in
80     ${CMAKE_CURRENT_SOURCE_DIR}/${CAPI_UWB}.pc
81     @ONLY
82 )
83
84 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${CAPI_UWB}.pc DESTINATION ${LIB}/pkgconfig)