diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 92e6b3e813..d589a7a677 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -908,7 +908,7 @@ bool HandleMakeDirectoryCommand(std::vector const& args, cmMakeRange(cm::begin(unparsedArguments), cm::end(unparsedArguments)), "\n"); status.SetError("MAKE_DIRECTORY called with unexpected\n" - "arguments:\n" + + "arguments:\n " + unexpectedArgsStr); return false; } @@ -919,9 +919,7 @@ bool HandleMakeDirectoryCommand(std::vector const& args, } std::string expr; - for (std::string const& arg : - cmMakeRange(args).advance(1)) // Get rid of subcommand - { + for (std::string const& arg : argsRange) { const std::string* cdir = &arg; if (!cmsys::SystemTools::FileIsFullPath(arg)) { expr = diff --git a/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-result.txt b/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-result.txt new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-stderr.txt b/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-stderr.txt new file mode 100644 index 0000000000..1602e43ae9 --- /dev/null +++ b/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-stderr.txt @@ -0,0 +1,8 @@ +^CMake Error at [^ +]*/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT\.cmake:[0-9]+ \(file\): + file MAKE_DIRECTORY called with unexpected + + arguments: + + [^ +]*/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT-build/after$ diff --git a/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT.cmake b/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT.cmake new file mode 100644 index 0000000000..40743f85a2 --- /dev/null +++ b/Tests/RunCMake/file-MAKE_DIRECTORY/MAKE_DIRECTORY-after-RESULT.cmake @@ -0,0 +1,6 @@ +file(MAKE_DIRECTORY + "${CMAKE_CURRENT_BINARY_DIR}/before" + RESULT resultVal + "${CMAKE_CURRENT_BINARY_DIR}/after" +) +message(STATUS "Result=${resultVal}") diff --git a/Tests/RunCMake/file-MAKE_DIRECTORY/RunCMakeTest.cmake b/Tests/RunCMake/file-MAKE_DIRECTORY/RunCMakeTest.cmake index 1eacd9065e..77d16e1ce3 100644 --- a/Tests/RunCMake/file-MAKE_DIRECTORY/RunCMakeTest.cmake +++ b/Tests/RunCMake/file-MAKE_DIRECTORY/RunCMakeTest.cmake @@ -5,3 +5,4 @@ run_cmake_script(MAKE_DIRECTORY-Result-one-dir-FAIL) run_cmake_script(MAKE_DIRECTORY-Result-one-dir-SUCCESS) run_cmake_script(MAKE_DIRECTORY-Result-many-dirs-FAIL) run_cmake_script(MAKE_DIRECTORY-Result-many-dirs-SUCCESS) +run_cmake_script(MAKE_DIRECTORY-after-RESULT)