Pārlūkot izejas kodu

Merge topic 'libuv-required'

88c9878a Make libuv available to all parts of CMake

Acked-by: Kitware Robot <[email protected]>
Merge-request: !1104
Brad King 8 gadi atpakaļ
vecāks
revīzija
73657a35e6
3 mainītis faili ar 19 papildinājumiem un 50 dzēšanām
  1. 13 38
      CMakeLists.txt
  2. 0 1
      Source/cmConfigure.cmake.h.in
  3. 6 11
      Source/cmakemain.cxx

+ 13 - 38
CMakeLists.txt

@@ -529,42 +529,21 @@ macro (CMAKE_BUILD_UTILITIES)
 
   #---------------------------------------------------------------------
   # Build libuv library.
-  if(NOT DEFINED CMAKE_USE_LIBUV)
-    set(CMAKE_USE_LIBUV 1)
-    if(APPLE)
-      include(CheckCSourceCompiles)
-      check_c_source_compiles("
-#include <CoreServices/CoreServices.h>
-#include <AvailabilityMacros.h>
-#ifndef MAC_OS_X_VERSION_10_5
-#error \"MAC_OS_X_VERSION_10_5 is not defined\"
-#endif
-int main(void) { return 0; }
-" HAVE_CoreServices_OS_X_10_5)
-      if(NOT HAVE_CoreServices_OS_X_10_5)
-        set(CMAKE_USE_LIBUV 0)
-      endif()
-    endif()
-  endif()
-  if(CMAKE_USE_LIBUV)
-    if(CMAKE_USE_SYSTEM_LIBUV)
-      if(NOT CMAKE_VERSION VERSION_LESS 3.0)
-        find_package(LibUV 1.0.0)
-      else()
-        message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBUV requires CMake >= 3.0")
-      endif()
-      if(NOT LIBUV_FOUND)
-        message(FATAL_ERROR
-          "CMAKE_USE_SYSTEM_LIBUV is ON but a libuv is not found!")
-      endif()
-      set(CMAKE_LIBUV_LIBRARIES LibUV::LibUV)
+  if(CMAKE_USE_SYSTEM_LIBUV)
+    if(NOT CMAKE_VERSION VERSION_LESS 3.0)
+      find_package(LibUV 1.0.0)
     else()
-      set(CMAKE_LIBUV_LIBRARIES cmlibuv)
-      add_subdirectory(Utilities/cmlibuv)
-      CMAKE_SET_TARGET_FOLDER(cmlibuv "Utilities/3rdParty")
+      message(FATAL_ERROR "CMAKE_USE_SYSTEM_LIBUV requires CMake >= 3.0")
     endif()
+    if(NOT LIBUV_FOUND)
+      message(FATAL_ERROR
+        "CMAKE_USE_SYSTEM_LIBUV is ON but a libuv is not found!")
+    endif()
+    set(CMAKE_LIBUV_LIBRARIES LibUV::LibUV)
   else()
-    set(CMAKE_LIBUV_LIBRARIES)
+    set(CMAKE_LIBUV_LIBRARIES cmlibuv)
+    add_subdirectory(Utilities/cmlibuv)
+    CMAKE_SET_TARGET_FOLDER(cmlibuv "Utilities/3rdParty")
   endif()
 
   #---------------------------------------------------------------------
@@ -758,8 +737,7 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
   if(NOT DEFINED CMake_ENABLE_SERVER_MODE)
     list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_auto_type CMake_HAVE_CXX_AUTO_TYPE)
     list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_range_for CMake_HAVE_CXX_RANGE_FOR)
-    if(CMAKE_USE_LIBUV
-        AND CMake_HAVE_CXX_AUTO_TYPE
+    if(CMake_HAVE_CXX_AUTO_TYPE
         AND CMake_HAVE_CXX_MAKE_UNIQUE
         AND CMake_HAVE_CXX_RANGE_FOR
         )
@@ -768,9 +746,6 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
       set(CMake_ENABLE_SERVER_MODE 0)
     endif()
   endif()
-  if(CMake_ENABLE_SERVER_MODE AND NOT CMAKE_USE_LIBUV)
-    message(FATAL_ERROR "The server mode requires libuv!")
-  endif()
 else()
   set(CMake_ENABLE_SERVER_MODE 0)
 endif()

+ 0 - 1
Source/cmConfigure.cmake.h.in

@@ -19,7 +19,6 @@
 #cmakedefine HAVE_UNSETENV
 #cmakedefine CMAKE_USE_ELF_PARSER
 #cmakedefine CMAKE_USE_MACH_PARSER
-#cmakedefine CMAKE_USE_LIBUV
 #cmakedefine CMake_HAVE_CXX_AUTO_PTR
 #cmakedefine CMake_HAVE_CXX_EQ_DELETE
 #cmakedefine CMake_HAVE_CXX_FALLTHROUGH

+ 6 - 11
Source/cmakemain.cxx

@@ -15,6 +15,11 @@
 #ifdef CMAKE_BUILD_WITH_CMAKE
 #include "cmDocumentation.h"
 #include "cmDynamicLoader.h"
+#ifdef _WIN32
+#include <fcntl.h>  /* _O_TEXT */
+#include <stdlib.h> /* _set_fmode, _fmode */
+#endif
+#include "cm_uv.h"
 #endif
 
 #include "cmsys/Encoding.hxx"
@@ -26,14 +31,6 @@
 #include <string>
 #include <vector>
 
-#ifdef CMAKE_USE_LIBUV
-#ifdef _WIN32
-#include <fcntl.h>  /* _O_TEXT */
-#include <stdlib.h> /* _set_fmode, _fmode */
-#endif
-#include "cm_uv.h"
-#endif
-
 #ifdef CMAKE_BUILD_WITH_CMAKE
 static const char* cmDocumentationName[][2] = {
   { CM_NULLPTR, "  cmake - Cross-Platform Makefile Generator." },
@@ -172,7 +169,7 @@ int main(int ac, char const* const* av)
   ac = args.argc();
   av = args.argv();
 
-#if defined(CMAKE_USE_LIBUV) && defined(_WIN32)
+#if defined(CMAKE_BUILD_WITH_CMAKE) && defined(_WIN32)
   // Perform libuv one-time initialization now, and then un-do its
   // global _fmode setting so that using libuv does not change the
   // default file text/binary mode.  See libuv issue 840.
@@ -197,8 +194,6 @@ int main(int ac, char const* const* av)
   int ret = do_cmake(ac, av);
 #ifdef CMAKE_BUILD_WITH_CMAKE
   cmDynamicLoader::FlushCache();
-#endif
-#ifdef CMAKE_USE_LIBUV
   uv_loop_close(uv_default_loop());
 #endif
   return ret;