Add krate-mount service
[platform/core/security/krate.git] / module / CMakeLists.txt
1 #
2 # Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3 #
4 # Licensed under the Apache License, Version 2.0(the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,noexecstack")
17
18 FILE(GLOB BUILDER_SRCS  krate-builder.cpp)
19
20 PKG_CHECK_MODULES(BUILDER_DEPS  REQUIRED
21                                                                 klay
22                                                                 libxml-2.0
23 )
24
25 FILE(GLOB PAM_SRCS      krate.cpp)
26
27 SET(PAM_NAME pam_${PROJECT_NAME})
28 ADD_LIBRARY(${PAM_NAME} MODULE ${PAM_SRCS} ${BUILDER_SRCS})
29
30 SET_TARGET_PROPERTIES(${PAM_NAME} PROPERTIES  PREFIX ""
31         COMPILE_DEFINITIONS PID_FILE_PATH="${RUN_INSTALL_DIR}/krate"
32         COMPILE_FLAGS "-fvisibility=hidden"
33 )
34
35 FIND_PATH(PAM_INCLUDE_DIR NAMES security/pam_appl.h security/pam_ext.h security/pam_modules.h
36         HINTS ${PAM_ROOT_DIR} PATH_SUFFIXES include)
37 FIND_LIBRARY(PAM_LIBRARY pam  HINTS ${PAM_ROOT_DIR} PATH_SUFFIXES ${LIB_INSTALL_DIR})
38 MARK_AS_ADVANCED(PAM_INCLUDE_DIR PAM_LIBRARY)
39
40 INCLUDE(FindPackageHandleStandardArgs)
41 FIND_PACKAGE_HANDLE_STANDARD_ARGS(PAM DEFAULT_MSG PAM_LIBRARY PAM_INCLUDE_DIR)
42
43 INCLUDE_DIRECTORIES(${PAM_INCLUDE_DIR} ${BUILDER_DEPS_INCLUDE_DIRS})
44
45 TARGET_LINK_LIBRARIES(${PAM_NAME}       ${PAM_LIBRARY} ${BUILDER_DEPS_LIBRARIES})
46
47 FILE(GLOB MOUNT_SRCS    krate-mount.cpp)
48
49 SET(MOUNT_NAME ${PROJECT_NAME}-mount)
50 ADD_EXECUTABLE(${MOUNT_NAME}    ${MOUNT_SRCS} ${BUILDER_SRCS})
51
52 TARGET_LINK_LIBRARIES(${MOUNT_NAME}     ${MOUNT_SRC} ${BUILDER_DEPS_LIBRARIES})
53
54 CONFIGURE_FILE(systemd/${MOUNT_NAME}.service.in systemd/${MOUNT_NAME}.service)
55
56 INSTALL(TARGETS ${PAM_NAME} DESTINATION ${LIB_INSTALL_DIR}/security)
57 INSTALL(TARGETS ${MOUNT_NAME} DESTINATION ${BIN_DIR})
58 INSTALL(FILES systemd/${MOUNT_NAME}.service DESTINATION ${SYSTEMD_USER_UNIT_DIR})