Merge topic 'libuv-required'

88c9878a Make libuv available to all parts of CMake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1104
This commit is contained in:
Brad King 2017-08-11 13:16:59 +00:00 committed by Kitware Robot
commit 73657a35e6
3 changed files with 19 additions and 50 deletions

View File

@ -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()

View File

@ -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

View File

@ -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;