vcpkg/ports/mbedtls/enable-pthread.patch
2024-09-08 12:04:08 -07:00

55 lines
1.7 KiB
Diff
Executable File

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2eba16d..a46cb3d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -123,7 +123,17 @@ endif()
# We now potentially need to link all executables against PThreads, if available
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
-find_package(Threads)
+if(NOT LINK_WITH_PTHREAD)
+ set(CMAKE_DISABLE_FIND_PACKAGE_Threads ON)
+elseif(WIN32 AND NOT MINGW)
+ find_package(PThreads4W REQUIRED)
+ set(CMAKE_THREAD_LIBS_INIT PThreads4W::PThreads4W)
+ add_definitions(-DLINK_WITH_PTHREAD)
+else()
+ find_package(Threads REQUIRED)
+ set(CMAKE_THREAD_LIBS_INIT Threads::Threads)
+ add_definitions(-DLINK_WITH_PTHREAD)
+endif()
# If this is the root project add longer list of available CMAKE_BUILD_TYPE values
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
diff --git a/cmake/MbedTLSConfig.cmake.in b/cmake/MbedTLSConfig.cmake.in
index b65bbab..5919c37 100644
--- a/cmake/MbedTLSConfig.cmake.in
+++ b/cmake/MbedTLSConfig.cmake.in
@@ -1,3 +1,11 @@
@PACKAGE_INIT@
+if("@LINK_WITH_PTHREAD@")
+ include(CMakeFindDependencyMacro)
+ if(WIN32 AND NOT MINGW)
+ find_dependency(PThreads4W)
+ else()
+ find_dependency(Threads)
+ endif()
+endif()
include("${CMAKE_CURRENT_LIST_DIR}/MbedTLSTargets.cmake")
diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h
index 3592141..174cabc 100644
--- a/include/mbedtls/mbedtls_config.h
+++ b/include/mbedtls/mbedtls_config.h
@@ -2091,6 +2091,10 @@
* Uncomment this to enable pthread mutexes.
*/
//#define MBEDTLS_THREADING_PTHREAD
+#ifdef LINK_WITH_PTHREAD
+#define MBEDTLS_THREADING_C
+#define MBEDTLS_THREADING_PTHREAD
+#endif
/**
* \def MBEDTLS_USE_PSA_CRYPTO