1
0
Эх сурвалжийг харах

curl: Use OS X SSL/TLS native implementation

On OS X, when CMAKE_USE_OPENSSL is OFF, use the OS implementation.
This will allow the OS-configured CA list to be trusted automatically.

This is supported on OS X 10.6 and above using AppleClang, Clang, and
GNU compilers.
Brad King 11 жил өмнө
parent
commit
e4563257ba

+ 9 - 0
Help/release/dev/curl-darwinssl.rst

@@ -0,0 +1,9 @@
+curl-darwinssl
+--------------
+
+* On OS X, commands supporting network communication, such as
+  :command:`file(DOWNLOAD)`, :command:`file(UPLOAD)`, and
+  :command:`ctest_submit`, now support SSL/TLS even when CMake
+  is not built against OpenSSL.  The OS X native SSL/TLS
+  implementation is used by default.  OS-configured certificate
+  authorities will be trusted automatically.

+ 19 - 0
Utilities/cmcurl/CMakeLists.txt

@@ -464,6 +464,25 @@ elseif(WIN32)
   # Use Windows SSL/TLS native implementation.
   add_definitions(-DUSE_SCHANNEL)
   set(USE_WINDOWS_SSPI 1)
+elseif(APPLE)
+  # Use OS X SSL/TLS native implementation if available on target version.
+  if(CMAKE_OSX_DEPLOYMENT_TARGET)
+    set(OSX_VERSION ${CMAKE_OSX_DEPLOYMENT_TARGET})
+  else()
+    execute_process(
+      COMMAND sw_vers -productVersion
+      OUTPUT_VARIABLE OSX_VERSION
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+      )
+  endif()
+  if(NOT OSX_VERSION VERSION_LESS 10.6 AND
+     CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
+    add_definitions(-DUSE_DARWINSSL)
+    list(APPEND CURL_LIBS
+      "-framework CoreFoundation"
+      "-framework Security"
+      )
+  endif()
 endif()
 
 #libSSH2