[Cmake-commits] CMake branch, next, updated. v2.8.2-749-g49acea5
David Cole
david.cole at kitware.com
Fri Sep 10 18:48:38 EDT 2010
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, next has been updated
via 49acea5d2db4ffdbcc8daed569bd016d21b53954 (commit)
via 269a4b876a34483c5cb664499dc6b1634fa453ff (commit)
from 561f2eb4beb12587018bca4bff99b8acfc9f561f (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=49acea5d2db4ffdbcc8daed569bd016d21b53954
commit 49acea5d2db4ffdbcc8daed569bd016d21b53954
Merge: 561f2eb 269a4b8
Author: David Cole <david.cole at kitware.com>
AuthorDate: Fri Sep 10 18:48:37 2010 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Sep 10 18:48:37 2010 -0400
Merge topic 'fix-9963' into next
269a4b8 Enable calling commands with : in argv[1] (#9963)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=269a4b876a34483c5cb664499dc6b1634fa453ff
commit 269a4b876a34483c5cb664499dc6b1634fa453ff
Author: David Cole <david.cole at kitware.com>
AuthorDate: Fri Sep 10 16:17:39 2010 -0400
Commit: David Cole <david.cole at kitware.com>
CommitDate: Fri Sep 10 17:55:45 2010 -0400
Enable calling commands with : in argv[1] (#9963)
The solution seems hackish, but it works: for
NMake only, prepend a no-op command before each
real command that begins with ".
This is really a work-around for an NMake problem.
When a command begins with ", nmake truncates the
first argument to the command after the first :
in that arg. It has a parsing problem.
Workaround..., hackish..., but it should solve
the issue for #9963 and its related friends.
Also, modify the CustomCommand test to replicate
the problem reported in issue #9963. Before the
NMake specific code change, the test failed.
Now, it passes. Ahhhhhh.
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 004d19a..f04d0a0 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1062,9 +1062,16 @@ cmLocalUnixMakefileGenerator3
}
}
}
- if (useCall && launcher.empty())
+ if (launcher.empty())
{
- cmd = "call " + cmd;
+ if (useCall)
+ {
+ cmd = "call " + cmd;
+ }
+ else if (this->NMake && cmd[0]=='"')
+ {
+ cmd = "echo >nul && " + cmd;
+ }
}
commands1.push_back(cmd);
}
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 8e8d0ca..e4c979e 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -376,7 +376,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--build-generator ${CMAKE_TEST_GENERATOR}
--build-project CustomCommand
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
- --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin"
+ --build-exe-dir "${CMake_BINARY_DIR}/Tests/CustomCommand/bin dir"
--test-command CustomCommand
)
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CustomCommand")
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index 4fc9fb5..6664fd6 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -9,12 +9,12 @@ ADD_SUBDIRECTORY(GeneratedHeader)
#
# Lib and exe path
#
-SET (LIBRARY_OUTPUT_PATH
- ${PROJECT_BINARY_DIR}/bin/ CACHE INTERNAL
+SET (LIBRARY_OUTPUT_PATH
+ "${PROJECT_BINARY_DIR}/bin dir" CACHE INTERNAL
"Single output directory for building all libraries.")
-SET (EXECUTABLE_OUTPUT_PATH
- ${PROJECT_BINARY_DIR}/bin/ CACHE INTERNAL
+SET (EXECUTABLE_OUTPUT_PATH
+ "${PROJECT_BINARY_DIR}/bin dir" CACHE INTERNAL
"Single output directory for building all executables.")
################################################################
@@ -221,6 +221,7 @@ ADD_CUSTOM_COMMAND(OUTPUT gen_redirect.c
# Test non-trivial command line arguments in custom commands.
SET(EXPECTED_ARGUMENTS)
SET(CHECK_ARGS
+ -DPATH=c:/posix/path
c:/posix/path
c:\\windows\\path
'single-quotes'
@@ -273,6 +274,8 @@ SET(CHECK_ARGS
|nopipe
"#two-pounds#"
"one#pound"
+ ":two-colons:"
+ "one:colon"
"#nocomment"
"c:/posix/path/with space"
"c:\\windows\\path\\with space"
@@ -359,13 +362,15 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/check_command_line.c.in
@ONLY IMMEDIATE)
ADD_EXECUTABLE(check_command_line
${CMAKE_CURRENT_BINARY_DIR}/check_command_line.c)
+SET_PROPERTY(TARGET check_command_line
+ PROPERTY OUTPUT_NAME "check command line")
# SET_TARGET_PROPERTIES(check_command_line PROPERTIES
# COMPILE_FLAGS -DCHECK_COMMAND_LINE_VERBOSE)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/command_line_check
COMMAND ${CMAKE_COMMAND} -DMARK_FILE=${CMAKE_CURRENT_BINARY_DIR}/check_mark.txt
-P ${CMAKE_CURRENT_SOURCE_DIR}/check_mark.cmake
- COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check_command_line
+ COMMAND "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check command line"
${CHECK_ARGS} ""
VERBATIM
COMMENT "Checking custom command line escapes (single'quote)"
@@ -375,7 +380,7 @@ SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/command_line_check
ADD_CUSTOM_TARGET(do_check_command_line ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/command_line_check
COMMAND ${CMAKE_COMMAND} -E echo "Checking custom target command escapes"
- COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check_command_line
+ COMMAND "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check command line"
${CHECK_ARGS} ""
VERBATIM
COMMENT "Checking custom target command line escapes ($dollar-signs$)"
-----------------------------------------------------------------------
Summary of changes:
Source/cmLocalUnixMakefileGenerator3.cxx | 11 +++++++++--
Tests/CMakeLists.txt | 2 +-
Tests/CustomCommand/CMakeLists.txt | 17 +++++++++++------
3 files changed, 21 insertions(+), 9 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list