summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: e39a147167b744de3a871812fdeb585395087c13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(capi-network-ua C CXX)

SET(PREFIX ${CMAKE_INSTALL_PREFIX})

SET(INC_DIR include)
INCLUDE_DIRECTORIES(${INC_DIR})

INCLUDE(FindPkgConfig)
SET(PKG_MODULES
	dlog
	glib-2.0
	gio-2.0
	ua-api
)
IF (${SUSPEND_RESUME_TEST})
    pkg_check_modules (PKGS REQUIRED ${PKG_MODULES}
	    deviced
	    power-defs
    )
    ADD_DEFINITIONS(-DSUSPEND_RESUME_TEST)
ELSE (${SUSPEND_RESUME_TEST})
    pkg_check_modules (PKGS REQUIRED ${PKG_MODULES})
ENDIF (${SUSPEND_RESUME_TEST})

INCLUDE_DIRECTORIES(${PKGS_INCLUDE_DIRS})
LINK_DIRECTORIES(${PKGS_LIBRARY_DIRS})

FOREACH(flag ${PKGS_CFLAGS})
	SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)

IF(BUILD_GCOV)
    SET(GGOV_FLAGS " -fprofile-arcs -ftest-coverage")
ELSE(BUILD_GCOV)
    set(GCOV_FLAGS "")
ENDIF(BUILD_GCOV)

SET(RELRO_FLAGS "-Wl,-z,relro")
SET(FORTIFY_FLAGS "-D_FORTIFY_SOURCE=2")
SET(STACK_CANARY_FLAGS "-fstack-protector-strong")
SET(PIE_FLAGS "-fPIE -fPIC")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${STACK_CANARY_FLAGS} ${FORTIFY_FLAGS} ${RELRO_FLAGS} ${PIE_FLAGS} ${GCOV_FLAGS} -Wall -Werror")

SET(LIB_NAME "${PROJECT_NAME}")
SET(LIB_PREFIX ${CMAKE_INSTALL_PREFIX})
SET(LIB_DIR "${LIB_PATH}")
SET(LIB_INCLUDE_DIR "${LIB_PREFIX}/include")
SET(LIB_PKGCONFIG_DIR "${LIB_PATH}/pkgconfig")

SET(SRCS
	src/user-awareness-device.c
	src/user-awareness-service.c
	src/user-awareness-monitors.c
	src/user-awareness-users.c
	src/user-awareness-util.c
	src/user-awareness-event-handler.c
)

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)

ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS})

SET_TARGET_PROPERTIES(${LIB_NAME}
	PROPERTIES
	VERSION ${FULLVER}
	SOVERSION ${MAJORVER}
	CLEAN_DIRECT_OUTPUT 1
	)

INSTALL(TARGETS ${LIB_NAME} DESTINATION ${LIB_DIR})
INSTALL(
	DIRECTORY ${INC_DIR}/ DESTINATION ${LIB_INCLUDE_DIR}
	FILES_MATCHING
	PATTERN "${INC_DIR}/user-awareness.h"
	PATTERN "${INC_DIR}/user-awareness-internal.h"
	)

SET(PC_NAME ${LIB_NAME})
SET(PC_REQUIRED ${pc_dependents})
SET(PC_LDFLAGS -l${LIB_NAME})

CONFIGURE_FILE(
	${LIB_NAME}.pc.in
	${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.pc
	@ONLY
	)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${LIB_NAME}.pc DESTINATION ${LIB_PKGCONFIG_DIR})

ADD_SUBDIRECTORY(test)