]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: support WinIDN
authorLi Xinwei <1326710505@qq.com>
Mon, 29 Mar 2021 04:58:17 +0000 (12:58 +0800)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 29 Mar 2021 07:50:55 +0000 (09:50 +0200)
Closes #6807

CMakeLists.txt
lib/curl_config.h.cmake

index d1477e357c90b1e4f6000372f54e011f2fed3859..f75815af2d7b634ecdc4ab159cc23ad73cacdf3d 100644 (file)
@@ -619,6 +619,14 @@ if(USE_LIBIDN2)
   check_library_exists_concat("idn2" idn2_lookup_ul HAVE_LIBIDN2)
 endif()
 
+if(WIN32)
+  option(USE_WIN32_IDN "Use WinIDN for IDN support" OFF)
+  if(USE_WIN32_IDN)
+    list(APPEND CURL_LIBS "Normaliz")
+    set(WANT_IDN_PROTOTYPES ON)
+  endif()
+endif()
+
 # Check for symbol dlopen (same as HAVE_LIBDL)
 check_library_exists("${CURL_LIBS}" dlopen "" HAVE_DLOPEN)
 
@@ -1363,7 +1371,7 @@ _add_if("libz"          HAVE_LIBZ)
 _add_if("brotli"        HAVE_BROTLI)
 _add_if("zstd"          HAVE_ZSTD)
 _add_if("AsynchDNS"     USE_ARES OR USE_THREADS_POSIX OR USE_THREADS_WIN32)
-_add_if("IDN"           HAVE_LIBIDN2)
+_add_if("IDN"           HAVE_LIBIDN2 OR USE_WIN32_IDN)
 _add_if("Largefile"     (SIZEOF_CURL_OFF_T GREATER 4) AND
                         ((SIZEOF_OFF_T GREATER 4) OR USE_WIN32_LARGE_FILES))
 # TODO SSP1 (Schannel) check is missing
index 01c4ded1f26da3acd124c71a362071b3afd67e58..fc1857ebb12fb7336b1e1600555bb88e4c23459e 100644 (file)
@@ -1073,3 +1073,9 @@ ${SIZEOF_TIME_T_CODE}
 
 /* Define to 1 if you have the mach_absolute_time function. */
 #cmakedefine HAVE_MACH_ABSOLUTE_TIME 1
+
+/* to enable Windows IDN */
+#cmakedefine USE_WIN32_IDN 1
+
+/* to make the compiler know the prototypes of Windows IDN APIs */
+#cmakedefine WANT_IDN_PROTOTYPES 1