This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, master has been updated via 186ca170da51d64a50bb15bfd067ca9b4c987327 (commit) via 6f242acfcb72881d184f5b2468fd4ddcadce01d8 (commit) via 9713154cf609691dfe9b8484c16cc034ea52d799 (commit) via cd285b749615c64e72ddadda0ba014c91829529c (commit) via c85524a94ace9ee400229fede179a605b1c144e3 (commit) via c474fb2777ea3e675237fccf23f64fe37371a5b0 (commit) via c846dbf89ee5b11a74dceb1c19fd7472eb8b075d (commit) via 6ad699358b6b421da6c49cf540b30eb8b0a3a996 (commit) from 323c4fb989e0259c733f5a34044c693667a31842 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=186ca170da51d64a50bb15bfd067ca9b4c987327 commit 186ca170da51d64a50bb15bfd067ca9b4c987327 Merge: 6f242ac c85524a Author: Brad King <brad.k...@kitware.com> AuthorDate: Fri May 3 15:48:33 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Fri May 3 11:48:46 2019 -0400 Merge topic 'std-pipes-always' c85524a94a Ensure stdin, stdout, and stderr pipes are always open Acked-by: Kitware Robot <kwro...@kitware.com> Acked-by: Kyle Edwards <kyle.edwa...@kitware.com> Merge-request: !3282 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f242acfcb72881d184f5b2468fd4ddcadce01d8 commit 6f242acfcb72881d184f5b2468fd4ddcadce01d8 Merge: 9713154 c474fb2 Author: Brad King <brad.k...@kitware.com> AuthorDate: Fri May 3 15:46:05 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Fri May 3 11:46:25 2019 -0400 Merge topic 'cpack-ifw-stylesheet' c474fb2777 CPack/IFW: Add StyleSheet field Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3270 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9713154cf609691dfe9b8484c16cc034ea52d799 commit 9713154cf609691dfe9b8484c16cc034ea52d799 Merge: cd285b7 6ad6993 Author: Brad King <brad.k...@kitware.com> AuthorDate: Fri May 3 15:45:22 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Fri May 3 11:45:32 2019 -0400 Merge topic 'jobs-positive-value' 6ad699358b cmake: --build -j <jobs> should not accept 0. Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3255 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cd285b749615c64e72ddadda0ba014c91829529c commit cd285b749615c64e72ddadda0ba014c91829529c Merge: 323c4fb c846dbf Author: Brad King <brad.k...@kitware.com> AuthorDate: Fri May 3 15:43:42 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Fri May 3 11:43:50 2019 -0400 Merge topic 'DetermineCompilerId-versioned-llvm-for-vs' c846dbf89e CMakeDetermineCompilerId: Support versioned LLVM for Visual Studio. Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3281 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c85524a94ace9ee400229fede179a605b1c144e3 commit c85524a94ace9ee400229fede179a605b1c144e3 Author: Brad King <brad.k...@kitware.com> AuthorDate: Thu May 2 11:11:28 2019 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu May 2 14:34:58 2019 -0400 Ensure stdin, stdout, and stderr pipes are always open On non-Windows platforms libuv assumes that file descriptors 0-2 are always used for standard pipes and never for anything else. Otherwise, libuv may re-use one of these descriptors and then fail an assertion when closing it. Similarly, On Windows platforms our ConsoleBuf implementation assumes that the standard handles are always open. If CMake is run with any standard pipes closed, open them with `/dev/null` or `NUL` to satisfy these assumptions. Fixes: #19219 diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index 3ceb824..58b9e70 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -98,6 +98,7 @@ static void cpackProgressCallback(const std::string& message, float /*unused*/) // this is CPack. int main(int argc, char const* const* argv) { + cmSystemTools::EnsureStdPipes(); #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) // Replace streambuf so we can output Unicode to console cmsys::ConsoleBuf::Manager consoleOut(std::cout); diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index 745c6bb..7caed0c 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -67,6 +67,7 @@ void onsig(int /*unused*/) int main(int argc, char const* const* argv) { + cmSystemTools::EnsureStdPipes(); cmsys::Encoding::CommandLineArguments encoding_args = cmsys::Encoding::CommandLineArguments::Main(argc, argv); argc = encoding_args.argc(); diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 8d9a50c..c9ebba8 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -55,6 +55,7 @@ Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin); int main(int argc, char** argv) { + cmSystemTools::EnsureStdPipes(); cmsys::Encoding::CommandLineArguments encoding_args = cmsys::Encoding::CommandLineArguments::Main(argc, argv); int argc2 = encoding_args.argc(); diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index bc853b7..17ed3f6 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -43,6 +43,7 @@ #include <assert.h> #include <ctype.h> #include <errno.h> +#include <fcntl.h> #include <iostream> #include <sstream> #include <stdio.h> @@ -56,8 +57,6 @@ # include <windows.h> // include wincrypt.h after windows.h # include <wincrypt.h> - -# include <fcntl.h> /* _O_TEXT */ #else # include <sys/time.h> # include <unistd.h> @@ -2007,6 +2006,71 @@ int cmSystemTools::WaitForLine(cmsysProcess* process, std::string& line, } } +#ifdef _WIN32 +static void EnsureStdPipe(DWORD fd) +{ + if (GetStdHandle(fd) != INVALID_HANDLE_VALUE) { + return; + } + SECURITY_ATTRIBUTES sa; + sa.nLength = sizeof(sa); + sa.lpSecurityDescriptor = NULL; + sa.bInheritHandle = TRUE; + + HANDLE h = CreateFileW( + L"NUL", + fd == STD_INPUT_HANDLE ? FILE_GENERIC_READ + : FILE_GENERIC_WRITE | FILE_READ_ATTRIBUTES, + FILE_SHARE_READ | FILE_SHARE_WRITE, &sa, OPEN_EXISTING, 0, NULL); + + if (h == INVALID_HANDLE_VALUE) { + LPSTR message = NULL; + DWORD size = FormatMessageA( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPSTR)&message, 0, NULL); + std::string msg = std::string(message, size); + LocalFree(message); + std::cerr << "failed to open NUL for missing stdio pipe: " << msg; + abort(); + } + + SetStdHandle(fd, h); +} + +void cmSystemTools::EnsureStdPipes() +{ + EnsureStdPipe(STD_INPUT_HANDLE); + EnsureStdPipe(STD_OUTPUT_HANDLE); + EnsureStdPipe(STD_ERROR_HANDLE); +} +#else +static void EnsureStdPipe(int fd) +{ + if (fcntl(fd, F_GETFD) != -1 || errno != EBADF) { + return; + } + + int f = open("/dev/null", fd == STDIN_FILENO ? O_RDONLY : O_WRONLY); + if (f == -1) { + perror("failed to open /dev/null for missing stdio pipe"); + abort(); + } + if (f != fd) { + dup2(f, fd); + close(f); + } +} + +void cmSystemTools::EnsureStdPipes() +{ + EnsureStdPipe(STDIN_FILENO); + EnsureStdPipe(STDOUT_FILENO); + EnsureStdPipe(STDERR_FILENO); +} +#endif + void cmSystemTools::DoNotInheritStdPipes() { #ifdef _WIN32 diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index 05bd351..8a87a37 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -435,6 +435,8 @@ public: // not get stuck waiting for all the output on the pipes. static void DoNotInheritStdPipes(); + static void EnsureStdPipes(); + /** Copy the file create/access/modify times from the file named by the first argument to that named by the second. */ static bool CopyFileTime(const std::string& fromFile, diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index 5631d10..b137327 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -183,6 +183,7 @@ static void cmakemainProgressCallback(const std::string& m, float prog, int main(int ac, char const* const* av) { + cmSystemTools::EnsureStdPipes(); #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) // Replace streambuf so we can output Unicode to console cmsys::ConsoleBuf::Manager consoleOut(std::cout); diff --git a/Source/ctest.cxx b/Source/ctest.cxx index 461021b..3b3630f 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -143,6 +143,7 @@ static const char* cmDocumentationOptions[][2] = { // this is a test driver program for cmCTest. int main(int argc, char const* const* argv) { + cmSystemTools::EnsureStdPipes(); #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) // Replace streambuf so we can output Unicode to console cmsys::ConsoleBuf::Manager consoleOut(std::cout); diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index ea749ea..1e74bb0 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -443,4 +443,8 @@ function(reject_fifo) endfunction() if(CMAKE_HOST_UNIX AND NOT CMAKE_SYSTEM_NAME STREQUAL "CYGWIN") reject_fifo() + run_cmake_command(closed_stdin sh -c "\"${CMAKE_COMMAND}\" --version <&-") + run_cmake_command(closed_stdout sh -c "\"${CMAKE_COMMAND}\" --version >&-") + run_cmake_command(closed_stderr sh -c "\"${CMAKE_COMMAND}\" --version 2>&-") + run_cmake_command(closed_stdall sh -c "\"${CMAKE_COMMAND}\" --version <&- >&- 2>&-") endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c474fb2777ea3e675237fccf23f64fe37371a5b0 commit c474fb2777ea3e675237fccf23f64fe37371a5b0 Author: Zaytsev Yuriy <gh...@mail.ru> AuthorDate: Mon Apr 29 22:08:08 2019 +0300 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu May 2 13:01:31 2019 -0400 CPack/IFW: Add StyleSheet field diff --git a/Help/cpack_gen/ifw.rst b/Help/cpack_gen/ifw.rst index e43b1d6..feccd3d 100644 --- a/Help/cpack_gen/ifw.rst +++ b/Help/cpack_gen/ifw.rst @@ -135,6 +135,10 @@ Package Wizard style to be used ("Modern", "Mac", "Aero" or "Classic"). +.. variable:: CPACK_IFW_PACKAGE_STYLE_SHEET + + Filename for a stylesheet. + .. variable:: CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH Default width of the wizard in pixels. Setting a banner image will override this. diff --git a/Help/release/dev/cpackifw-package-style-sheet.rst b/Help/release/dev/cpackifw-package-style-sheet.rst new file mode 100644 index 0000000..cf99244 --- /dev/null +++ b/Help/release/dev/cpackifw-package-style-sheet.rst @@ -0,0 +1,6 @@ +cpackifw-package-style-sheet +---------------------------- + +* The :cpack_gen:`CPack IFW Generator` gained a new + :variable:`CPACK_IFW_PACKAGE_STYLE_SHEET` variable to customize the + installer stylesheet. diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.cxx b/Source/CPack/IFW/cmCPackIFWInstaller.cxx index 01e3ea4..a075a17 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.cxx +++ b/Source/CPack/IFW/cmCPackIFWInstaller.cxx @@ -152,6 +152,15 @@ void cmCPackIFWInstaller::ConfigureFromOptions() } } + // StyleSheet + if (const char* option = this->GetOption("CPACK_IFW_PACKAGE_STYLE_SHEET")) { + if (cmSystemTools::FileExists(option)) { + this->StyleSheet = option; + } else { + this->printSkippedOptionWarning("CPACK_IFW_PACKAGE_STYLE_SHEET", option); + } + } + // WizardDefaultWidth if (const char* option = this->GetOption("CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH")) { @@ -381,6 +390,14 @@ void cmCPackIFWInstaller::GenerateInstallerFile() xout.Element("WizardStyle", this->WizardStyle); } + // Stylesheet + if (!this->StyleSheet.empty()) { + std::string name = cmSystemTools::GetFilenameName(this->StyleSheet); + std::string path = this->Directory + "/config/" + name; + cmsys::SystemTools::CopyFileIfDifferent(this->StyleSheet, path); + xout.Element("StyleSheet", name); + } + // WizardDefaultWidth if (!this->WizardDefaultWidth.empty()) { xout.Element("WizardDefaultWidth", this->WizardDefaultWidth); diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.h b/Source/CPack/IFW/cmCPackIFWInstaller.h index 37ad339..be51fa5 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.h +++ b/Source/CPack/IFW/cmCPackIFWInstaller.h @@ -72,6 +72,9 @@ public: /// Wizard style name std::string WizardStyle; + /// Filename for a style sheet + std::string StyleSheet; + /// Wizard width std::string WizardDefaultWidth; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c846dbf89ee5b11a74dceb1c19fd7472eb8b075d commit c846dbf89ee5b11a74dceb1c19fd7472eb8b075d Author: Zufu Liu <zufu...@gmail.com> AuthorDate: Thu May 2 10:45:53 2019 +0800 Commit: Zufu Liu <zufu...@gmail.com> CommitDate: Thu May 2 10:57:37 2019 +0800 CMakeDetermineCompilerId: Support versioned LLVM for Visual Studio. Supports versioned LLVM toolsets like LLVM_v142, LLVM_v141, LLVM_v141_xp, etc. for Visual Studio (2010 and later). The name for versioned LLVM toolsets has "LLVM_" prefix plus MSVC toolset name (i.e. v142, v141, v141_xp, etc.). Fixes: #19203 diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index c1c9982..746a806 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -189,7 +189,7 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_platform ${CMAKE_VS_PLATFORM_NAME}) set(id_lang "${lang}") set(id_PostBuildEvent_Command "") - if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Ll][Ll][Vv][Mm]$") + if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Ll][Ll][Vv][Mm](_v[0-9]+(_xp)?)?$") set(id_cl_var "ClangClExecutable") elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*") set(id_cl clang.exe) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ad699358b6b421da6c49cf540b30eb8b0a3a996 commit 6ad699358b6b421da6c49cf540b30eb8b0a3a996 Author: Fred Baksik <froda...@gmail.com> AuthorDate: Mon Apr 22 11:01:24 2019 -0400 Commit: Fred Baksik <froda...@gmail.com> CommitDate: Wed May 1 09:15:51 2019 -0400 cmake: --build -j <jobs> should not accept 0. Fixes #19059 diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst index 5b88694..ba47885 100644 --- a/Help/manual/cmake.1.rst +++ b/Help/manual/cmake.1.rst @@ -280,6 +280,9 @@ following options: The :envvar:`CMAKE_BUILD_PARALLEL_LEVEL` environment variable, if set, specifies a default parallel level when this option is not given. + Some native build tools always build in parallel. The use of ``<jobs>`` + value of ``1`` can be used to limit to a single job. + ``--target <tgt>..., -t <tgt>...`` Build ``<tgt>`` instead of default targets. May be specified multiple times. diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index d70c9d9..d96d956 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -24,6 +24,7 @@ #endif #include <cassert> +#include <climits> #include <ctype.h> #include <iostream> #include <string.h> @@ -69,7 +70,7 @@ static const char* cmDocumentationUsageNote[][2] = { " --config <cfg> = For multi-configuration tools, choose <cfg>.\n" \ " --clean-first = Build target 'clean' first, then build.\n" \ " (To clean only, use --target 'clean'.)\n" \ - " --verbose, -v = Enable verbose output - if supported - including\n" \ + " --verbose, -v = Enable verbose output - if supported - including\n" \ " the build commands to be executed. \n" \ " -- = Pass remaining options to the native tool.\n" @@ -393,7 +394,14 @@ int extract_job_number(int& index, char const* current, char const* next, if (jobString.empty()) { jobs = cmake::DEFAULT_BUILD_PARALLEL_LEVEL; } else if (cmSystemTools::StringToULong(jobString.c_str(), &numJobs)) { - jobs = int(numJobs); + if (numJobs == 0) { + std::cerr + << "The <jobs> value requires a positive integer argument.\n\n"; + } else if (numJobs > INT_MAX) { + std::cerr << "The <jobs> value is too large.\n\n"; + } else { + jobs = int(numJobs); + } } else { std::cerr << "'" << command.substr(0, len_of_flag) << "' invalid number '" << jobString << "' given.\n\n"; @@ -505,7 +513,17 @@ static int do_build(int ac, char const* const* av) } else { unsigned long numJobs = 0; if (cmSystemTools::StringToULong(parallel.c_str(), &numJobs)) { - jobs = int(numJobs); + if (numJobs == 0) { + std::cerr << "The CMAKE_BUILD_PARALLEL_LEVEL environment variable " + "requires a positive integer argument.\n\n"; + dir.clear(); + } else if (numJobs > INT_MAX) { + std::cerr << "The CMAKE_BUILD_PARALLEL_LEVEL environment variable " + "is too large.\n\n"; + dir.clear(); + } else { + jobs = int(numJobs); + } } else { std::cerr << "'CMAKE_BUILD_PARALLEL_LEVEL' environment variable\n" << "invalid number '" << parallel << "' given.\n\n"; diff --git a/Tests/RunCMake/CommandLine/BuildDir--build--parallel-large-result.txt b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-large-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-large-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/BuildDir--build--parallel-large-stderr.txt b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-large-stderr.txt new file mode 100644 index 0000000..94fc157 --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-large-stderr.txt @@ -0,0 +1,3 @@ +^The <jobs> value is too large\. ++ +Usage: cmake --build <dir> \[options\] \[-- \[native-options\]\] diff --git a/Tests/RunCMake/CommandLine/BuildDir--build--parallel-zero-result.txt b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-zero-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-zero-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/BuildDir--build--parallel-zero-stderr.txt b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-zero-stderr.txt new file mode 100644 index 0000000..8ed4fee --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build--parallel-zero-stderr.txt @@ -0,0 +1,3 @@ +^The <jobs> value requires a positive integer argument\. ++ +Usage: cmake --build <dir> \[options\] \[-- \[native-options\]\] diff --git a/Tests/RunCMake/CommandLine/BuildDir--build-jobs-large-result.txt b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-large-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-large-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/BuildDir--build-jobs-large-stderr.txt b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-large-stderr.txt new file mode 100644 index 0000000..94fc157 --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-large-stderr.txt @@ -0,0 +1,3 @@ +^The <jobs> value is too large\. ++ +Usage: cmake --build <dir> \[options\] \[-- \[native-options\]\] diff --git a/Tests/RunCMake/CommandLine/BuildDir--build-jobs-zero-result.txt b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-zero-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-zero-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CommandLine/BuildDir--build-jobs-zero-stderr.txt b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-zero-stderr.txt new file mode 100644 index 0000000..8ed4fee --- /dev/null +++ b/Tests/RunCMake/CommandLine/BuildDir--build-jobs-zero-stderr.txt @@ -0,0 +1,3 @@ +^The <jobs> value requires a positive integer argument\. ++ +Usage: cmake --build <dir> \[options\] \[-- \[native-options\]\] diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index ea749ea..49d3608 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -149,6 +149,14 @@ function(run_BuildDir) ${CMAKE_COMMAND} --build BuildDir-build --parallel2) run_cmake_command(BuildDir--build--parallel-no-space-good-number-trailing--target ${CMAKE_COMMAND} -E chdir .. ${CMAKE_COMMAND} --build BuildDir-build --parallel2 --target CustomTarget) + run_cmake_command(BuildDir--build-jobs-zero ${CMAKE_COMMAND} -E chdir .. + ${CMAKE_COMMAND} --build BuildDir-build -j 0) + run_cmake_command(BuildDir--build--parallel-zero ${CMAKE_COMMAND} -E chdir .. + ${CMAKE_COMMAND} --build BuildDir-build --parallel 0) + run_cmake_command(BuildDir--build-jobs-large ${CMAKE_COMMAND} -E chdir .. + ${CMAKE_COMMAND} --build BuildDir-build -j 4294967293) + run_cmake_command(BuildDir--build--parallel-large ${CMAKE_COMMAND} -E chdir .. + ${CMAKE_COMMAND} --build BuildDir-build --parallel 4294967293) # No default jobs for Xcode and FreeBSD build command if(NOT RunCMake_GENERATOR MATCHES "Xcode" AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD") ----------------------------------------------------------------------- Summary of changes: Help/cpack_gen/ifw.rst | 4 ++ Help/manual/cmake.1.rst | 3 + Help/release/dev/cpackifw-package-style-sheet.rst | 6 ++ Modules/CMakeDetermineCompilerId.cmake | 2 +- Source/CPack/IFW/cmCPackIFWInstaller.cxx | 17 ++++++ Source/CPack/IFW/cmCPackIFWInstaller.h | 3 + Source/CPack/cpack.cxx | 1 + Source/CursesDialog/ccmake.cxx | 1 + Source/QtDialog/CMakeSetup.cxx | 1 + Source/cmSystemTools.cxx | 68 +++++++++++++++++++++- Source/cmSystemTools.h | 2 + Source/cmakemain.cxx | 25 +++++++- Source/ctest.cxx | 1 + .../BuildDir--build--parallel-large-result.txt} | 0 ... => BuildDir--build--parallel-large-stderr.txt} | 2 +- .../BuildDir--build--parallel-zero-result.txt} | 0 ...t => BuildDir--build--parallel-zero-stderr.txt} | 2 +- .../BuildDir--build-jobs-large-result.txt} | 0 ...r.txt => BuildDir--build-jobs-large-stderr.txt} | 2 +- .../BuildDir--build-jobs-zero-result.txt} | 0 ...rr.txt => BuildDir--build-jobs-zero-stderr.txt} | 2 +- Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 12 ++++ 22 files changed, 144 insertions(+), 10 deletions(-) create mode 100644 Help/release/dev/cpackifw-package-style-sheet.rst copy Tests/RunCMake/{while/MissingArgument-result.txt => CommandLine/BuildDir--build--parallel-large-result.txt} (100%) copy Tests/RunCMake/CommandLine/{BuildDir--build-jobs-no-space-bad-number-stderr.txt => BuildDir--build--parallel-large-stderr.txt} (65%) copy Tests/RunCMake/{while/MissingArgument-result.txt => CommandLine/BuildDir--build--parallel-zero-result.txt} (100%) copy Tests/RunCMake/CommandLine/{BuildDir--build-jobs-no-space-bad-number-stderr.txt => BuildDir--build--parallel-zero-stderr.txt} (54%) copy Tests/RunCMake/{while/MissingArgument-result.txt => CommandLine/BuildDir--build-jobs-large-result.txt} (100%) copy Tests/RunCMake/CommandLine/{BuildDir--build-jobs-no-space-bad-number-stderr.txt => BuildDir--build-jobs-large-stderr.txt} (65%) copy Tests/RunCMake/{while/MissingArgument-result.txt => CommandLine/BuildDir--build-jobs-zero-result.txt} (100%) copy Tests/RunCMake/CommandLine/{BuildDir--build-jobs-no-space-bad-number-stderr.txt => BuildDir--build-jobs-zero-stderr.txt} (54%) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits