diff --git a/Help/release/dev/cmake-verbose-print-build-tool-command.rst b/Help/release/dev/cmake-verbose-print-build-tool-command.rst new file mode 100644 index 0000000000..4f13231b02 --- /dev/null +++ b/Help/release/dev/cmake-verbose-print-build-tool-command.rst @@ -0,0 +1,5 @@ +cmake-verbose-print-build-tool-command +-------------------------------------- + +* ``cmake --build $dir --verbose`` will now print the working directory and + command line used to perform the build. diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 0fd7461339..868728fca7 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -3699,10 +3699,19 @@ int cmake::Build(int jobs, std::string dir, std::vector targets, } this->GlobalGenerator->PrintBuildCommandAdvice(std::cerr, jobs); - return this->GlobalGenerator->Build( + int buildresult = this->GlobalGenerator->Build( jobs, "", dir, projName, targets, output, "", config, buildOptions, verbose, cmDuration::zero(), cmSystemTools::OUTPUT_PASSTHROUGH, nativeOptions); + + if (verbose) { + // `cmGlobalGenerator::Build` logs metadata about what directory and + // commands are being executed to the `output` parameter. If CMake is + // verbose, print this out. + std::cout << output; + } + + return buildresult; } bool cmake::Open(const std::string& dir, bool dryRun)