find_package(需要ACL,不停止处理)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find_package(需要ACL,不停止处理)相关的知识,希望对你有一定的参考价值。

我目前正在尝试为我的一个小型C库建立一个基于CMake的构建系统。由于该库依赖于libacl,因此CMake应该验证它是否存在于系统中,否则将失败。

由于没有预定义的FindACL模块,因此我使用了the KDE project中的模块。我用以下(最小)CMakeLists.txt称呼它:

cmake_minimum_required(VERSION 3.12)

project(
    cmaketest
    VERSION 1.0
    DESCRIPTION "cmake test"
    LANGUAGES C
)

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
find_package(ACL REQUIRED) # ACL_LIBS

它正确地检测到我的系统缺少libacl,但即使manual states that也没有停止处理,但是>

如果找不到包,则REQUIRED选项将停止处理并显示错误消息。

我是否必须通过ACL_FOUND语句显式检查是否设置了if

我正在使用CMake 3.13.4。终端输出:

-- The C compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for include file attr/libattr.h
-- Looking for include file attr/libattr.h - not found
-- Looking for include file sys/xattr.h
-- Looking for include file sys/xattr.h - found
-- Looking for include file sys/acl.h
-- Looking for include file sys/acl.h - not found
-- Looking for include file acl/libacl.h
-- Looking for include file acl/libacl.h - not found
-- Configuring done
-- Generating done
-- Build files have been written to: [redacted]/build

我目前正在尝试为我的一个小型C库建立一个基于CMake的构建系统。由于该库取决于libacl,因此CMake应验证它是否存在于系统中,否则将失败。 ...

答案

我还没有找到任何官方确认,但是似乎一段时间以来,CMake期望FindXXX.cmake脚本(在find_packageMODULE

以上是关于find_package(需要ACL,不停止处理)的主要内容,如果未能解决你的问题,请参考以下文章

phalcon: eventManager事件管理(结合dispatcher调度控制器)制作简单的acl

ACL - 限制特定功能?

ACL 访问控制列表

squid代理服务器介绍与配置(理论+实践)二

Cmake命令之find_package介绍

你如何告诉 CMake 静态链接到使用 find_package 找到的包中的库?