Merge topic 'file-MAKE_DIRECTORY-result-var' into release-4.0 41d91387f6 Merge branch 'backport-3.31-file-MAKE_DIRECTORY-result-var' 3dd701c068 Merge branch 'backport-3.31-file-MAKE_DIRECTORY-result-var' (early part) 397ec37528 file(MAKE_DIRECTORY): Do not make directories for command keywords a039a1655d file(MAKE_DIRECTORY): Clarify formatting of unexpected arguments error 90d9c79348 file(MAKE_DIRECTORY): Do not make directories for command keywords Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !10467
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index eebe674..e9f234f 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx
@@ -864,7 +864,7 @@ cmMakeRange(cm::begin(unparsedArguments), cm::end(unparsedArguments)), "\n"); status.SetError("MAKE_DIRECTORY called with unexpected\n" - "arguments:\n" + + "arguments:\n " + unexpectedArgsStr); return false; } @@ -875,9 +875,7 @@ } std::string expr; - for (std::string const& arg : - cmMakeRange(args).advance(1)) // Get rid of subcommand - { + for (std::string const& arg : argsRange) { std::string const* 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 0000000..d00491f --- /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 0000000..1602e43 --- /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 0000000..40743f8 --- /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 1eacd90..77d16e1 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-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)