# # Copyright (c) 2015-2019 Samsung Electronics Co., Ltd All Rights Reserved # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # SET(SERVER_SRCS main.cpp server.cpp misc.cpp ext4-tool.cpp file-footer.cpp file-sink.cpp secure-erase.cpp progress-bar.cpp kernel-keyring.cpp internal-encryption.cpp internal-encryption-common.cpp external-encryption.cpp luks.cpp key-server.cpp engine/encryption/ext4-engine.cpp engine/encryption/dmcrypt-engine.cpp engine/encryption/ecryptfs-engine.cpp engine/encryption/cryptsetup-engine.cpp engine/erase/mmc-engine.cpp engine/erase/erase-engine.cpp key-manager/key-store.cpp key-manager/key-generator.cpp key-manager/anti-forensics.cpp key-manager/encrypted-key.cpp upgrade-support.cpp ) SET(DEPENDENCY klay vconf glib-2.0 gio-2.0 libtzplatform-config cynara-client libcrypto1.1 libsmack capi-system-device libsystemd ext2fs com_err ) SET(SERVER_NAME ${PROJECT_NAME}d) SET(PROJECT_DATA_DIR ${DATA_DIR}/${PROJECT_NAME}) ADD_EXECUTABLE(${SERVER_NAME} ${SERVER_SRCS}) PKG_CHECK_MODULES(SERVER_DEPS REQUIRED ${DEPENDENCY}) INCLUDE_DIRECTORIES(SYSTEM ${SERVER_DEPS_INCLUDE_DIRS} ${ODE_SERVER} ${PROJECT_SOURCE_DIR}) TARGET_LINK_LIBRARIES(${SERVER_NAME} ${SERVER_DEPS_LIBRARIES} ${LFS_LDFLAGS} ${LFS_LIBS} pthread dl) SET_TARGET_PROPERTIES(${SERVER_NAME} PROPERTIES COMPILE_FLAGS "-fPIE") SET_TARGET_PROPERTIES(${SERVER_NAME} PROPERTIES LINK_FLAGS "-pie -Wl,-z,relro") ADD_DEFINITIONS(-DPROJECT_DATA_DIR="${PROJECT_DATA_DIR}") TARGET_COMPILE_DEFINITIONS(${SERVER_NAME} PRIVATE RUN_PATH="${RUN_DIR}" ICON_PATH="${ICON_DIR}" ) CONFIGURE_FILE(systemd/${PROJECT_NAME}.service.in systemd/${PROJECT_NAME}.service) CONFIGURE_FILE(systemd/${PROJECT_NAME}.socket.in systemd/${PROJECT_NAME}.socket) CONFIGURE_FILE(dbus/${DBUS_NAME}.service.in dbus/${DBUS_NAME}.service) INSTALL(TARGETS ${SERVER_NAME} DESTINATION ${BIN_DIR}) INSTALL(FILES systemd/${PROJECT_NAME}.service systemd/${PROJECT_NAME}.socket DESTINATION ${SYSTEMD_UNIT_DIR}) INSTALL(FILES dbus/${DBUS_NAME}.service DESTINATION ${DBUS_SYSTEM_SERVICES_DIR}) INSTALL(FILES dbus/${DBUS_NAME}.conf DESTINATION ${DBUS_CONF_DIR}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/engine/encryption/dummy_password DESTINATION ${PROJECT_DATA_DIR}) INSTALL(DIRECTORY DESTINATION ${KEY_STORAGE_PLUGIN_DIR})