[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