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_package
的MODULE
以上是关于find_package(需要ACL,不停止处理)的主要内容,如果未能解决你的问题,请参考以下文章