From 4214ffa8a5df641775bd46ac7620d00687d74792 Mon Sep 17 00:00:00 2001 From: David Garske Date: Tue, 27 May 2025 12:36:57 -0700 Subject: [PATCH] Improvements to CMake support for single threading, mutex locking and active thread local storage. --- CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b60fc9..7009c3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,11 +79,41 @@ check_function_exists("gettimeofday" HAVE_GETTIMEOFDAY) # * wait state # * small stack +# Single threaded +set(WOLFTPM_SINGLE_THREADED "no" CACHE STRING + "Enable wolfTPM single threaded (default: disabled)") +set_property(CACHE WOLFTPM_SINGLE_THREADED + PROPERTY STRINGS "yes;no") +if(WOLFTPM_SINGLE_THREADED) + list(APPEND WOLFTPM_DEFINITIONS + "-DSINGLE_THREADED") +endif() + +# Mutex locking +set(WOLFTPM_NO_LOCK "no" CACHE STRING + "Enable thread mutex locking (default: enabled)") +set_property(CACHE WOLFTPM_NO_LOCK + PROPERTY STRINGS "yes;no") +if(NOT WOLFTPM_NO_LOCK) + list(APPEND WOLFTPM_DEFINITIONS + "-DWOLFTPM_NO_LOCK") +endif() + +# Active TPM - Thread local storage +set(WOLFTPM_NO_ACTIVE_THREAD_LS "no" CACHE STRING + "Disable active TPM thread local storage (default: disabled)") +set_property(CACHE WOLFTPM_NO_ACTIVE_THREAD_LS + PROPERTY STRINGS "yes;no") +if(NOT WOLFTPM_NO_ACTIVE_THREAD_LS) + list(APPEND WOLFTPM_DEFINITIONS + "-DWOLFTPM_NO_ACTIVE_THREAD_LS") +endif() + # Provisioning set(WOLFTPM_PROVISIONING "yes" CACHE STRING "Enable support for Provisioning Initial Device Identity (IDevID) and Attestation Identity Keys (default: enabled)") set_property(CACHE WOLFTPM_PROVISIONING - PROPERTY STRINGS "yes;no;verbose") + PROPERTY STRINGS "yes;no") if(WOLFTPM_PROVISIONING) list(APPEND WOLFTPM_DEFINITIONS "-DWOLFTPM_PROVISIONING")