Release changes from private Samsung repository.
[platform/core/security/libprivilege-control.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(libprivilege-control C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR "\${prefix}/lib")
7 SET(INCLUDEDIR "\${prefix}/include")
8 SET(SHAREDIR "${PREFIX}/share/privilege-control")
9 SET(HOMEDIR "/opt/home")
10 SET(VERSION 1.0)
11
12 SET(VERSION_MAJOR 0)
13 SET(VERSION "${VERSION_MAJOR}.0.2")
14
15 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
16
17 INCLUDE(FindPkgConfig)
18 pkg_check_modules(pkgs REQUIRED libsmack)
19
20 FOREACH(flag ${pkgs_CFLAGS})
21         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
22 ENDFOREACH(flag)
23
24 SET(src_dir "./src")
25 SET(include_dir "./include")
26
27 ## Additional flag
28 ADD_DEFINITIONS("-fvisibility=hidden")
29 ADD_DEFINITIONS("-DUSE_PRIVILEGE_CONTROL")
30 ADD_DEFINITIONS("-DSHAREDIR=${SHAREDIR}")
31 ADD_DEFINITIONS("-DHOMEDIR=${HOMEDIR}")
32 ADD_DEFINITIONS("-Wall -Werror")
33
34 # Temporary turn off setting Smack
35 #ADD_DEFINITIONS("-DSMACK_ENABLED")
36
37 ###################################################################################################
38 ## for libprivilege-control.so (library)
39 SET(libprivilege-control_SOURCES ${src_dir}/privilege-control.c)
40 SET(libprivilege-control_LDFLAGS " -module -avoid-version ")
41 SET(libprivilege-control_CFLAGS  " ${CFLAGS} -fPIC -I${include_dir}")
42 #SET(libprivilege-control_LIBADD " ")
43
44 ADD_LIBRARY(privilege-control SHARED ${libprivilege-control_SOURCES})
45 TARGET_LINK_LIBRARIES(privilege-control ${pkgs_LDFLAGS})
46 SET_TARGET_PROPERTIES(privilege-control PROPERTIES COMPILE_FLAGS "${libprivilege-control_CFLAGS}")
47 SET_TARGET_PROPERTIES(privilege-control PROPERTIES SOVERSION ${VERSION_MAJOR})
48 SET_TARGET_PROPERTIES(privilege-control PROPERTIES VERSION ${VERSION})
49 ###################################################################################################
50
51 ###################################################################################################
52 ## for slp-su (excutable)
53 SET(slp-su_SOURCES ${src_dir}/slp-su.c)
54 SET(slp-su_LDFLAGS " -module -avoid-version ")
55 SET(slp-su_CFLAGS  " ${CFLAGS} -fPIC -I${include_dir}")
56
57 ADD_EXECUTABLE(slp-su ${slp-su_SOURCES})
58 TARGET_LINK_LIBRARIES(slp-su ${pkgs_LDFLAGS} privilege-control)
59 SET_TARGET_PROPERTIES(slp-su PROPERTIES COMPILE_FLAGS "${slp-su_CFLAGS}")
60 ###################################################################################################
61
62 CONFIGURE_FILE(libprivilege-control.pc.in libprivilege-control.pc @ONLY)
63
64 FILE(GLOB datfiles ${CMAKE_CURRENT_SOURCE_DIR}/permissions/*.dat)
65 FILE(GLOB smackfiles ${CMAKE_CURRENT_SOURCE_DIR}/permissions/*.smack)
66 FILE(GLOB udevfiles ${CMAKE_CURRENT_SOURCE_DIR}/udev/rules/*)
67
68 INSTALL(TARGETS privilege-control DESTINATION lib COMPONENT RuntimeLibraries)
69 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprivilege-control.pc DESTINATION lib/pkgconfig)
70 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/passwd DESTINATION /opt/etc/)
71 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/group DESTINATION /opt/etc/)
72 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/smack_default_rules DESTINATION /opt/etc/smack/accesses.d/ RENAME default)
73 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/smack_default_labeling DESTINATION /etc/rc.d/init.d/)
74 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/privilege-control.h DESTINATION include)
75 INSTALL(FILES ${datfiles} DESTINATION ${SHAREDIR})
76 INSTALL(FILES ${smackfiles} DESTINATION ${SHAREDIR})
77 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/app_group_list DESTINATION ${SHAREDIR})
78 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dev_group_list DESTINATION ${SHAREDIR})
79 INSTALL(FILES ${udevfiles} DESTINATION lib/udev/rules.d)
80 INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/slp-su DESTINATION bin)