New upstream version 3.29.4
This commit is contained in:
		
							parent
							
								
									d7a23c874c
								
							
						
					
					
						commit
						07e2a3c3fb
					
				@ -219,3 +219,10 @@ Changes made since CMake 3.28.0 include the following.
 | 
			
		||||
 | 
			
		||||
* This version made no changes to documented features or interfaces.
 | 
			
		||||
  Some implementation updates were made to C++ modules support.
 | 
			
		||||
 | 
			
		||||
3.28.6
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
* This version made no changes to documented features or interfaces.
 | 
			
		||||
  Some implementation updates were made to support ecosystem changes
 | 
			
		||||
  and/or fix regressions.
 | 
			
		||||
 | 
			
		||||
@ -212,8 +212,8 @@ Changes made since CMake 3.29.0 include the following.
 | 
			
		||||
  :prop_tgt:`LINKER_TYPE` target property now work with compilers
 | 
			
		||||
  for the ``Swift`` language.
 | 
			
		||||
 | 
			
		||||
3.29.2, 3.29.3
 | 
			
		||||
--------------
 | 
			
		||||
3.29.2, 3.29.3, 3.29.4
 | 
			
		||||
----------------------
 | 
			
		||||
 | 
			
		||||
* These versions made no changes to documented features or interfaces.
 | 
			
		||||
  Some implementation updates were made to support ecosystem changes
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@ Known version numbers are::
 | 
			
		||||
  1900      = VS 14.0 (v140 toolset)
 | 
			
		||||
  1910-1919 = VS 15.0 (v141 toolset)
 | 
			
		||||
  1920-1929 = VS 16.0 (v142 toolset)
 | 
			
		||||
  1930-1939 = VS 17.0 (v143 toolset)
 | 
			
		||||
  1930-1949 = VS 17.0 (v143 toolset)
 | 
			
		||||
 | 
			
		||||
See also the  :variable:`CMAKE_<LANG>_COMPILER_VERSION` and
 | 
			
		||||
:variable:`MSVC_TOOLSET_VERSION` variable.
 | 
			
		||||
 | 
			
		||||
@ -567,7 +567,7 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS}
 | 
			
		||||
      if(CMAKE_VS_PLATFORM_NAME STREQUAL x64)
 | 
			
		||||
        set(cuda_target "<TargetMachinePlatform>64</TargetMachinePlatform>")
 | 
			
		||||
      endif()
 | 
			
		||||
      set(id_ItemDefinitionGroup_entry "<CudaCompile>${cuda_target}<AdditionalOptions>%(AdditionalOptions)-v</AdditionalOptions></CudaCompile>")
 | 
			
		||||
      set(id_ItemDefinitionGroup_entry "<CudaCompile>${cuda_target}<AdditionalOptions>%(AdditionalOptions)-v -allow-unsupported-compiler</AdditionalOptions></CudaCompile>")
 | 
			
		||||
      set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]])
 | 
			
		||||
      if(CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR)
 | 
			
		||||
        # check for legacy cuda custom toolkit folder structure
 | 
			
		||||
 | 
			
		||||
@ -2224,7 +2224,16 @@ function(_ep_get_configuration_subdir_genex suffix_var)
 | 
			
		||||
  set(suffix "")
 | 
			
		||||
  get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
 | 
			
		||||
  if(_isMultiConfig)
 | 
			
		||||
    set(suffix "/$<CONFIG>")
 | 
			
		||||
    if(CMAKE_GENERATOR STREQUAL "Xcode")
 | 
			
		||||
      # The Xcode generator does not support per-config sources,
 | 
			
		||||
      # so use the underlying build system's placeholder instead.
 | 
			
		||||
      # FIXME(#23652): We have no test for the use case requiring
 | 
			
		||||
      # CMAKE_CFG_INTDIR for XCODE_EMIT_EFFECTIVE_PLATFORM_NAME,
 | 
			
		||||
      # but $<CONFIG> does not work.
 | 
			
		||||
      set(suffix "/${CMAKE_CFG_INTDIR}")
 | 
			
		||||
    else()
 | 
			
		||||
      set(suffix "/$<CONFIG>")
 | 
			
		||||
    endif()
 | 
			
		||||
  endif()
 | 
			
		||||
  set(${suffix_var} "${suffix}" PARENT_SCOPE)
 | 
			
		||||
endfunction()
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
# CMake version number components.
 | 
			
		||||
set(CMake_VERSION_MAJOR 3)
 | 
			
		||||
set(CMake_VERSION_MINOR 29)
 | 
			
		||||
set(CMake_VERSION_PATCH 3)
 | 
			
		||||
set(CMake_VERSION_PATCH 4)
 | 
			
		||||
#set(CMake_VERSION_RC 0)
 | 
			
		||||
set(CMake_VERSION_IS_DIRTY 0)
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ endif()
 | 
			
		||||
 | 
			
		||||
if(NOT CMake_VERSION_NO_GIT)
 | 
			
		||||
  # If this source was exported by 'git archive', use its commit info.
 | 
			
		||||
  set(git_info [==[b39fb31bf4 CMake 3.29.3]==])
 | 
			
		||||
  set(git_info [==[efaa9efece CMake 3.29.4]==])
 | 
			
		||||
 | 
			
		||||
  # Otherwise, try to identify the current development source version.
 | 
			
		||||
  if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "
 | 
			
		||||
 | 
			
		||||
@ -434,3 +434,17 @@ std::string CxxModuleMapContent(CxxModuleMapFormat format,
 | 
			
		||||
  assert(false);
 | 
			
		||||
  return {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CxxModuleMapMode CxxModuleMapOpenMode(CxxModuleMapFormat format)
 | 
			
		||||
{
 | 
			
		||||
  switch (format) {
 | 
			
		||||
    case CxxModuleMapFormat::Gcc:
 | 
			
		||||
      return CxxModuleMapMode::Binary;
 | 
			
		||||
    case CxxModuleMapFormat::Clang:
 | 
			
		||||
    case CxxModuleMapFormat::Msvc:
 | 
			
		||||
      return CxxModuleMapMode::Default;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  assert(false);
 | 
			
		||||
  return CxxModuleMapMode::Default;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -83,6 +83,14 @@ struct CxxModuleUsage
 | 
			
		||||
                    LookupMethod method);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum class CxxModuleMapMode
 | 
			
		||||
{
 | 
			
		||||
  Text,
 | 
			
		||||
  Binary,
 | 
			
		||||
 | 
			
		||||
  Default = Text,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Return the extension to use for a given modulemap format.
 | 
			
		||||
cm::static_string_view CxxModuleMapExtension(
 | 
			
		||||
  cm::optional<CxxModuleMapFormat> format);
 | 
			
		||||
@ -101,3 +109,6 @@ std::string CxxModuleMapContent(CxxModuleMapFormat format,
 | 
			
		||||
                                CxxModuleLocations const& loc,
 | 
			
		||||
                                cmScanDepInfo const& obj,
 | 
			
		||||
                                CxxModuleUsage const& usages);
 | 
			
		||||
 | 
			
		||||
// Return the open mode required for the modmap file format.
 | 
			
		||||
CxxModuleMapMode CxxModuleMapOpenMode(CxxModuleMapFormat format);
 | 
			
		||||
 | 
			
		||||
@ -2730,6 +2730,7 @@ cmGlobalGenerator::SplitFrameworkPath(const std::string& path,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool RaiseCMP0037Message(cmake* cm, cmTarget* tgt,
 | 
			
		||||
                                std::string const& targetNameAsWritten,
 | 
			
		||||
                                std::string const& reason)
 | 
			
		||||
{
 | 
			
		||||
  MessageType messageType = MessageType::AUTHOR_WARNING;
 | 
			
		||||
@ -2750,8 +2751,8 @@ static bool RaiseCMP0037Message(cmake* cm, cmTarget* tgt,
 | 
			
		||||
      break;
 | 
			
		||||
  }
 | 
			
		||||
  if (issueMessage) {
 | 
			
		||||
    e << "The target name \"" << tgt->GetName() << "\" is reserved " << reason
 | 
			
		||||
      << ".";
 | 
			
		||||
    e << "The target name \"" << targetNameAsWritten << "\" is reserved "
 | 
			
		||||
      << reason << ".";
 | 
			
		||||
    if (messageType == MessageType::AUTHOR_WARNING) {
 | 
			
		||||
      e << "  It may result in undefined behavior.";
 | 
			
		||||
    }
 | 
			
		||||
@ -2770,7 +2771,8 @@ bool cmGlobalGenerator::CheckCMP0037(std::string const& targetName,
 | 
			
		||||
  if (!tgt) {
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
  return RaiseCMP0037Message(this->GetCMakeInstance(), tgt, reason);
 | 
			
		||||
  return RaiseCMP0037Message(this->GetCMakeInstance(), tgt, targetName,
 | 
			
		||||
                             reason);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void cmGlobalGenerator::CreateDefaultGlobalTargets(
 | 
			
		||||
 | 
			
		||||
@ -2806,7 +2806,10 @@ bool cmGlobalNinjaGenerator::WriteDyndepFile(
 | 
			
		||||
        // `cmNinjaTargetGenerator::WriteObjectBuildStatements` and
 | 
			
		||||
        // `cmNinjaTargetGenerator::ExportObjectCompileCommand` to generate the
 | 
			
		||||
        // corresponding file path.
 | 
			
		||||
        cmGeneratedFileStream mmf(cmStrCat(object.PrimaryOutput, ".modmap"));
 | 
			
		||||
        cmGeneratedFileStream mmf;
 | 
			
		||||
        mmf.Open(cmStrCat(object.PrimaryOutput, ".modmap"), false,
 | 
			
		||||
                 CxxModuleMapOpenMode(*modmap_fmt) ==
 | 
			
		||||
                   CxxModuleMapMode::Binary);
 | 
			
		||||
        mmf.SetCopyIfDifferent(true);
 | 
			
		||||
        mmf << mm;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -476,6 +476,22 @@ static int testFile()
 | 
			
		||||
#    define _WIN32_WINNT_VISTA 0x0600
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
static bool consoleIsConhost()
 | 
			
		||||
{
 | 
			
		||||
  wchar_t consoleClassNameBuf[64];
 | 
			
		||||
  int const consoleClassNameLen = GetClassNameW(
 | 
			
		||||
    GetConsoleWindow(), &consoleClassNameBuf[0], sizeof(consoleClassNameBuf));
 | 
			
		||||
  // Windows Console Host: ConsoleWindowClass
 | 
			
		||||
  // Windows Terminal / ConPTY: PseudoConsoleWindow (undocumented)
 | 
			
		||||
  return (consoleClassNameLen > 0 &&
 | 
			
		||||
          wcscmp(consoleClassNameBuf, L"ConsoleWindowClass") == 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool charIsNUL(wchar_t c)
 | 
			
		||||
{
 | 
			
		||||
  return c == 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int testConsole()
 | 
			
		||||
{
 | 
			
		||||
  int didFail = 1;
 | 
			
		||||
@ -691,7 +707,15 @@ static int testConsole()
 | 
			
		||||
        throw std::runtime_error("ReadConsoleOutputCharacter failed!");
 | 
			
		||||
      }
 | 
			
		||||
      std::wstring wideTestString = kwsys::Encoding::ToWide(encodedTestString);
 | 
			
		||||
      std::replace(wideTestString.begin(), wideTestString.end(), '\0', ' ');
 | 
			
		||||
      if (consoleIsConhost()) {
 | 
			
		||||
        // Windows Console Host converts NUL bytes to spaces.
 | 
			
		||||
        std::replace(wideTestString.begin(), wideTestString.end(), '\0', ' ');
 | 
			
		||||
      } else {
 | 
			
		||||
        // Windows Terminal / ConPTY removes NUL bytes.
 | 
			
		||||
        wideTestString.erase(std::remove_if(wideTestString.begin(),
 | 
			
		||||
                                            wideTestString.end(), charIsNUL),
 | 
			
		||||
                             wideTestString.end());
 | 
			
		||||
      }
 | 
			
		||||
      std::wstring wideInputTestString =
 | 
			
		||||
        kwsys::Encoding::ToWide(encodedInputTestString);
 | 
			
		||||
      if (memcmp(outputBuffer, wideTestString.c_str(),
 | 
			
		||||
 | 
			
		||||
@ -45,6 +45,10 @@ run_cmake(WARN-cond)
 | 
			
		||||
run_cmake(WARN-cond-test)
 | 
			
		||||
run_cmake(WARN-cond-package)
 | 
			
		||||
 | 
			
		||||
run_cmake(alias-test-NEW)
 | 
			
		||||
run_cmake(alias-test-OLD)
 | 
			
		||||
run_cmake(alias-test-WARN)
 | 
			
		||||
 | 
			
		||||
if(RunCMake_GENERATOR MATCHES "Make|Ninja")
 | 
			
		||||
  run_cmake(NEW-cond-package_source)
 | 
			
		||||
  run_cmake(OLD-cond-package_source)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								Tests/RunCMake/CMP0037/alias-test-NEW-result.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Tests/RunCMake/CMP0037/alias-test-NEW-result.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
1
 | 
			
		||||
							
								
								
									
										5
									
								
								Tests/RunCMake/CMP0037/alias-test-NEW-stderr.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Tests/RunCMake/CMP0037/alias-test-NEW-stderr.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
^CMake Error at alias-test-common\.cmake:[0-9]+ \(add_library\):
 | 
			
		||||
  The target name "test" is reserved when CTest testing is enabled\.
 | 
			
		||||
Call Stack \(most recent call first\):
 | 
			
		||||
  alias-test-NEW\.cmake:[0-9]+ \(include\)
 | 
			
		||||
  CMakeLists\.txt:[0-9]+ \(include\)$
 | 
			
		||||
							
								
								
									
										2
									
								
								Tests/RunCMake/CMP0037/alias-test-NEW.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Tests/RunCMake/CMP0037/alias-test-NEW.cmake
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
cmake_policy(SET CMP0037 NEW)
 | 
			
		||||
include(alias-test-common.cmake)
 | 
			
		||||
							
								
								
									
										10
									
								
								Tests/RunCMake/CMP0037/alias-test-OLD-stderr.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Tests/RunCMake/CMP0037/alias-test-OLD-stderr.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
^CMake Deprecation Warning at alias-test-OLD\.cmake:[0-9]+ \(cmake_policy\):
 | 
			
		||||
  The OLD behavior for policy CMP0037 will be removed from a future version
 | 
			
		||||
  of CMake\.
 | 
			
		||||
 | 
			
		||||
  The cmake-policies\(7\) manual explains that the OLD behaviors of all
 | 
			
		||||
  policies are deprecated and that a policy should be set to OLD only under
 | 
			
		||||
  specific short-term circumstances\.  Projects should be ported to the NEW
 | 
			
		||||
  behavior and not rely on setting a policy to OLD\.
 | 
			
		||||
Call Stack \(most recent call first\):
 | 
			
		||||
  CMakeLists\.txt:[0-9]+ \(include\)$
 | 
			
		||||
							
								
								
									
										2
									
								
								Tests/RunCMake/CMP0037/alias-test-OLD.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Tests/RunCMake/CMP0037/alias-test-OLD.cmake
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
cmake_policy(SET CMP0037 OLD)
 | 
			
		||||
include(alias-test-common.cmake)
 | 
			
		||||
							
								
								
									
										11
									
								
								Tests/RunCMake/CMP0037/alias-test-WARN-stderr.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Tests/RunCMake/CMP0037/alias-test-WARN-stderr.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
^CMake Warning \(dev\) at alias-test-common\.cmake:[0-9]+ \(add_library\):
 | 
			
		||||
  Policy CMP0037 is not set: Target names should not be reserved and should
 | 
			
		||||
  match a validity pattern\.  Run "cmake --help-policy CMP0037" for policy
 | 
			
		||||
  details\.  Use the cmake_policy command to set the policy and suppress this
 | 
			
		||||
  warning\.
 | 
			
		||||
 | 
			
		||||
  The target name "test" is reserved when CTest testing is enabled\.  It may
 | 
			
		||||
  result in undefined behavior\.
 | 
			
		||||
Call Stack \(most recent call first\):
 | 
			
		||||
  alias-test-WARN\.cmake:[0-9]+ \(include\)
 | 
			
		||||
  CMakeLists\.txt:[0-9]+ \(include\)
 | 
			
		||||
							
								
								
									
										2
									
								
								Tests/RunCMake/CMP0037/alias-test-WARN.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Tests/RunCMake/CMP0037/alias-test-WARN.cmake
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
# leave CMP0037 unset
 | 
			
		||||
include(alias-test-common.cmake)
 | 
			
		||||
							
								
								
									
										3
									
								
								Tests/RunCMake/CMP0037/alias-test-common.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Tests/RunCMake/CMP0037/alias-test-common.cmake
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
enable_testing()
 | 
			
		||||
add_library(iface INTERFACE)
 | 
			
		||||
add_library(test ALIAS iface)
 | 
			
		||||
@ -513,6 +513,10 @@ set(execute_process_ARGS
 | 
			
		||||
if(NOT CMake_TEST_EXTERNAL_CMAKE)
 | 
			
		||||
  list(APPEND execute_process_ARGS -DTEST_ENCODING_EXE=$<TARGET_FILE:testEncoding>)
 | 
			
		||||
endif()
 | 
			
		||||
if(WIN32)
 | 
			
		||||
  add_executable(testStartupInfo testStartupInfo.c)
 | 
			
		||||
  list(APPEND execute_process_ARGS -DTEST_STARTUPINFO_EXE=$<TARGET_FILE:testStartupInfo>)
 | 
			
		||||
endif()
 | 
			
		||||
add_RunCMake_test(execute_process)
 | 
			
		||||
add_RunCMake_test(export)
 | 
			
		||||
if(CMake_TEST_MSYSTEM_PREFIX)
 | 
			
		||||
 | 
			
		||||
@ -53,3 +53,7 @@ if(WIN32 OR CYGWIN)
 | 
			
		||||
  set(RunCMake_TEST_NO_CLEAN 1)
 | 
			
		||||
  run_cmake_command(WindowsNoExtension-build ${CMAKE_COMMAND} --build . --config Debug --target RunScript)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(TEST_STARTUPINFO_EXE)
 | 
			
		||||
  run_cmake_script(StartupInfo -DTEST_STARTUPINFO_EXE=${TEST_STARTUPINFO_EXE})
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								Tests/RunCMake/execute_process/StartupInfo.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Tests/RunCMake/execute_process/StartupInfo.cmake
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
execute_process(COMMAND "${TEST_STARTUPINFO_EXE}" COMMAND_ERROR_IS_FATAL ANY)
 | 
			
		||||
							
								
								
									
										25
									
								
								Tests/RunCMake/testStartupInfo.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Tests/RunCMake/testStartupInfo.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
#ifndef _CRT_SECURE_NO_WARNINGS
 | 
			
		||||
#  define _CRT_SECURE_NO_WARNINGS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && _MSC_VER >= 1928
 | 
			
		||||
#  pragma warning(disable : 5105) /* macro expansion warning in windows.h */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
  STARTUPINFOW si;
 | 
			
		||||
  memset(&si, 0, sizeof(si));
 | 
			
		||||
  GetStartupInfoW(&si);
 | 
			
		||||
  if (si.cbReserved2 != 0 || si.lpReserved2 != NULL) {
 | 
			
		||||
    fprintf(stderr, "si.cbReserved2: %u\n", si.cbReserved2);
 | 
			
		||||
    fprintf(stderr, "si.lpReserved2: %p\n", si.lpReserved2);
 | 
			
		||||
    return 1;
 | 
			
		||||
  }
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
@ -1083,8 +1083,15 @@ int uv_spawn(uv_loop_t* loop,
 | 
			
		||||
  startup.lpTitle = NULL;
 | 
			
		||||
  startup.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
 | 
			
		||||
 | 
			
		||||
#if 1
 | 
			
		||||
  /* cmake does not need libuv's support for passing file descriptors >= 3
 | 
			
		||||
     to the MSVC C run-time in the child.  Avoid using reserved members.  */
 | 
			
		||||
  startup.cbReserved2 = 0;
 | 
			
		||||
  startup.lpReserved2 = NULL;
 | 
			
		||||
#else
 | 
			
		||||
  startup.cbReserved2 = uv__stdio_size(process->child_stdio_buffer);
 | 
			
		||||
  startup.lpReserved2 = (BYTE*) process->child_stdio_buffer;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  startup.hStdInput = uv__stdio_handle(process->child_stdio_buffer, 0);
 | 
			
		||||
  startup.hStdOutput = uv__stdio_handle(process->child_stdio_buffer, 1);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user