project(pam_biometric) find_path(PAM_INCLUDE_DIR security/pam_modules.h) find_library(PAM_LIB NAMES pam) if(NOT PAM_INCLUDE_DIR OR NOT PAM_LIB) message(FATAL_ERROR "pam_modules.h not found") endif() set(SCRIPTS_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/bin) configure_file( ${PROJECT_SOURCE_DIR}/data/org.freedesktop.plicykit.pkexec.bioctl-helper.policy.in ${PROJECT_BINARY_DIR}/data/org.freedesktop.plicykit.pkexec.bioctl-helper.policy ) configure_file( ${PROJECT_SOURCE_DIR}/data/org.freedesktop.plicykit.pkexec.biodrvctl.policy.in ${PROJECT_BINARY_DIR}/data/org.freedesktop.plicykit.pkexec.biodrvctl.policy ) configure_file( ${PROJECT_SOURCE_DIR}/data/org.freedesktop.plicykit.pkexec.biorestart.policy.in ${PROJECT_BINARY_DIR}/data/org.freedesktop.plicykit.pkexec.biorestart.policy ) set(pam_SRCS pam_biometric.c logger.c ) include_directories( ../common ${PAM_INCLUDE_DIR} ) add_library(pam_biometric SHARED ${pam_SRCS}) target_link_libraries(pam_biometric ${PAM_LIB}) #去除lib前缀 set_target_properties(pam_biometric PROPERTIES PREFIX "") install(TARGETS pam_biometric DESTINATION /lib/security) install(FILES pam-configs/pam-biometric DESTINATION /usr/share/pam-configs) install(FILES data/ukui-biometric.conf DESTINATION /etc/biometric-auth) install(FILES ${PROJECT_BINARY_DIR}/data/org.freedesktop.plicykit.pkexec.bioctl-helper.policy ${PROJECT_BINARY_DIR}/data/org.freedesktop.plicykit.pkexec.biodrvctl.policy ${PROJECT_BINARY_DIR}/data/org.freedesktop.plicykit.pkexec.biorestart.policy DESTINATION /usr/share/polkit-1/actions ) install(FILES utils/bioctl utils/bioctl-helper utils/biodrvctl utils/biorestart DESTINATION bin PERMISSIONS ${CONDOR_SCRIPT_PERMS})