summaryrefslogtreecommitdiffstats
path: root/cmake/FindWrapOpenSSL.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/FindWrapOpenSSL.cmake')
-rw-r--r--cmake/FindWrapOpenSSL.cmake21
1 files changed, 21 insertions, 0 deletions
diff --git a/cmake/FindWrapOpenSSL.cmake b/cmake/FindWrapOpenSSL.cmake
new file mode 100644
index 0000000000..6e80862258
--- /dev/null
+++ b/cmake/FindWrapOpenSSL.cmake
@@ -0,0 +1,21 @@
+# We can't create the same interface imported target multiple times, CMake will complain if we do
+# that. This can happen if the find_package call is done in multiple different subdirectories.
+if(TARGET WrapOpenSSL::WrapOpenSSL)
+ set(WrapOpenSSL_FOUND ON)
+ return()
+endif()
+
+set(WrapOpenSSL_FOUND OFF)
+
+# Reuse logic from the headers find script.
+find_package(WrapOpenSSLHeaders ${WrapOpenSSL_FIND_VERSION})
+
+if(OpenSSL_FOUND)
+ set(WrapOpenSSL_FOUND ON)
+
+ add_library(WrapOpenSSL::WrapOpenSSL INTERFACE IMPORTED)
+ target_link_libraries(WrapOpenSSL::WrapOpenSSL INTERFACE OpenSSL::SSL)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(WrapOpenSSL DEFAULT_MSG WrapOpenSSL_FOUND)