Sfoglia il codice sorgente

Replace ':' with ';' only on Unix systems.

Chen Yufei 3 anni fa
parent
commit
c5c8467a5f
1 ha cambiato i file con 9 aggiunte e 3 eliminazioni
  1. 9 3
      cmake/FindWinSock.cmake

+ 9 - 3
cmake/FindWinSock.cmake

@@ -72,9 +72,15 @@ if(MINGW)
   )
   if (NOT RESULT)
     string(REGEX MATCH "libraries: =([^\r\n]*)" OUT "${OUT}")
-    string(REPLACE ":" ";" _WINSOCK_LIBRARY_PATH "${CMAKE_MATCH_1}")
-    list(APPEND WINSOCK_LIBRARY_PATHS "${_WINSOCK_LIBRARY_PATH}")
-    unset(_WINSOCK_LIBRARY_PATH)
+    if(UNIX)
+      # On Unix systems, search dirs are separated by ':'.
+      # Thus we need to replace ':' with ';' to make a valid cmake list.
+      string(REPLACE ":" ";" _SEARCH_PATHS "${CMAKE_MATCH_1}")
+      list(APPEND WINSOCK_LIBRARY_PATHS "${_SEARCH_PATHS}")
+      unset(_SEARCH_PATHS)
+    else()
+      list(APPEND WINSOCK_LIBRARY_PATHS "${CMAKE_MATCH_1}")
+    endif()
   endif()
 endif()
 if ("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "AMD64" AND "${CMAKE_SIZEOF_VOID_P}" EQUAL 4)