[cmake] do proper pkcs11 detection

do not rely on find_feature but use a CMake option and find_package
This commit is contained in:
Armin Novak 2023-06-27 20:16:28 +02:00 committed by akallabeth
parent 2810a3702c
commit 646a78d19c
2 changed files with 16 additions and 11 deletions

View File

@ -18,7 +18,12 @@ if (PKCS11_INCLUDE_DIR AND PKCS11_LIBRARY)
set(PKCS11_FOUND TRUE)
endif()
# include(FindPackageHandleStandardArgs)
# FIND_PACKAGE_HANDLE_STANDARD_ARGS(FFmpeg DEFAULT_MSG AVUTIL_FOUND AVCODEC_FOUND SWRESAMPLE_FOUND)
set(Pkcs11_FOUND ${PKCS11_FOUND})
set(Pkcs11_INCLUDE_DIR ${PKCS11_INCLUDE_DIR})
set(Pkcs11_INCLUDE_DIRS ${PKCS11_INCLUDE_DIR})
set(Pkcs11_LIBRARY ${PKCS11_LIBRARY})
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Pkcs11 DEFAULT_MSG Pkcs11_FOUND)

View File

@ -279,15 +279,15 @@ set(OPENSSL_FEATURE_TYPE "RECOMMENDED")
set(TESTING_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/Testing")
endif()
if (NOT WIN32)
set(P11_FEATURE_TYPE "OPTIONAL")
set(P11_FEATURE_PURPOSE "PKCS11")
set(P11_FEATURE_DESCRIPTION "encryption, certificate validation, hashing functions")
find_feature(Pkcs11 ${P11_FEATURE_TYPE} ${P11_FEATURE_PURPOSE} ${P11_FEATURE_DESCRIPTION})
if (PKCS11_FOUND)
add_definitions("-DWITH_PKCS11")
endif()
if (NOT WIN32 AND NOT IOS AND NOT ANDROID)
set(PKCS11_DEFAULT ON)
else()
set(PKCS11_DEFAULT OFF)
endif()
option(WITH_PKCS11 "encryption, certificate validation, hashing functions" ${PKCS11_DEFAULT})
if (WITH_PKCS11)
find_package(Pkcs11 REQUIRED)
add_definitions("-DWITH_PKCS11")
endif()
# Default to release build type