[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2784-g53ba77e

Brad King brad.king at kitware.com
Tue Apr 16 09:46:37 EDT 2013


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  53ba77e9f50471ddc5747febb2923a0d6fdf550f (commit)
       via  7d1590e6f98a48d1d4f8f95413710e37f01b6026 (commit)
       via  ec1ba9b0ae27a5731b98fecab648fa3edcfcffa2 (commit)
       via  df71f968cd269854ab15147b012b6f07b1da6109 (commit)
      from  e4df58e5a3149a5b285ff6918b2ad9f17f6fda29 (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=53ba77e9f50471ddc5747febb2923a0d6fdf550f
commit 53ba77e9f50471ddc5747febb2923a0d6fdf550f
Merge: e4df58e 7d1590e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 16 09:46:31 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Apr 16 09:46:31 2013 -0400

    Merge topic 'improve-get_filename_component-names' into next
    
    7d1590e get_filename_component: Add DIRECTORY option (#14091)
    ec1ba9b get_filename_component: Add explicit unit tests
    df71f96 get_filename_component: Document path components more clearly (#14091)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7d1590e6f98a48d1d4f8f95413710e37f01b6026
commit 7d1590e6f98a48d1d4f8f95413710e37f01b6026
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 16 09:37:37 2013 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 16 09:37:37 2013 -0400

    get_filename_component: Add DIRECTORY option (#14091)
    
    The name "PATH" is not precise so add equivalent option "DIRECTORY".
    Document the latter as preferred and the former as a legacy alias.

diff --git a/Source/cmGetFilenameComponentCommand.cxx b/Source/cmGetFilenameComponentCommand.cxx
index fd1ad60..1d7fefc 100644
--- a/Source/cmGetFilenameComponentCommand.cxx
+++ b/Source/cmGetFilenameComponentCommand.cxx
@@ -58,7 +58,7 @@ bool cmGetFilenameComponentCommand
     }
   std::string storeArgs;
   std::string programArgs;
-  if (args[2] == "PATH")
+  if (args[2] == "DIRECTORY" || args[2] == "PATH")
     {
     result = cmSystemTools::GetFilenamePath(filename);
     }
diff --git a/Source/cmGetFilenameComponentCommand.h b/Source/cmGetFilenameComponentCommand.h
index f294daa..09af332 100644
--- a/Source/cmGetFilenameComponentCommand.h
+++ b/Source/cmGetFilenameComponentCommand.h
@@ -64,12 +64,13 @@ public:
     return
       "  get_filename_component(<VAR> <FileName> <COMP> [CACHE])\n"
       "Set <VAR> to a component of <FileName>, where <COMP> is one of:\n"
-      " PATH      = Directory without file name\n"
+      " DIRECTORY = Directory without file name\n"
       " NAME      = File name without directory\n"
       " EXT       = File name longest extension (.b.c from d/a.b.c)\n"
       " NAME_WE   = File name without directory or longest extension\n"
       " ABSOLUTE  = Full path to file\n"
       " REALPATH  = Full path to existing file with symlinks resolved\n"
+      " PATH      = Legacy alias for DIRECTORY (use for CMake <= 2.8.11)\n"
       "Paths are returned with forward slashes and have no trailing slahes. "
       "The longest file extension is always considered. "
       "If the optional CACHE argument is specified, the result variable is "
diff --git a/Tests/RunCMake/get_filename_component/KnownComponents.cmake b/Tests/RunCMake/get_filename_component/KnownComponents.cmake
index d5becc0..a4ef8ff 100644
--- a/Tests/RunCMake/get_filename_component/KnownComponents.cmake
+++ b/Tests/RunCMake/get_filename_component/KnownComponents.cmake
@@ -5,28 +5,29 @@ macro(check desc actual expect)
 endmacro()
 
 set(filename "/path/to/filename.ext.in")
-set(expect_PATH "/path/to")
+set(expect_DIRECTORY "/path/to")
 set(expect_NAME "filename.ext.in")
 set(expect_EXT ".ext.in")
 set(expect_NAME_WE "filename")
-foreach(c PATH NAME EXT NAME_WE)
+set(expect_PATH "/path/to")
+foreach(c DIRECTORY NAME EXT NAME_WE PATH)
   get_filename_component(actual_${c} "${filename}" ${c})
   check("${c}" "${actual_${c}}" "${expect_${c}}")
 endforeach()
 
-get_filename_component(test_slashes "c:\\path\\to\\filename.ext.in" PATH)
-check("PATH from backslashes" "${test_slashes}" "c:/path/to")
+get_filename_component(test_slashes "c:\\path\\to\\filename.ext.in" DIRECTORY)
+check("DIRECTORY from backslashes" "${test_slashes}" "c:/path/to")
 
-get_filename_component(test_winroot "c:\\filename.ext.in" PATH)
-check("PATH in windows root" "${test_winroot}" "c:/")
+get_filename_component(test_winroot "c:\\filename.ext.in" DIRECTORY)
+check("DIRECTORY in windows root" "${test_winroot}" "c:/")
 
 get_filename_component(test_absolute "/path/to/a/../filename.ext.in" ABSOLUTE)
 check("ABSOLUTE" "${test_absolute}" "/path/to/filename.ext.in")
 
-get_filename_component(test_cache "/path/to/filename.ext.in" PATH CACHE)
+get_filename_component(test_cache "/path/to/filename.ext.in" DIRECTORY CACHE)
 check("CACHE 1" "${test_cache}" "/path/to")
-get_filename_component(test_cache "/path/to/other/filename.ext.in" PATH CACHE)
+get_filename_component(test_cache "/path/to/other/filename.ext.in" DIRECTORY CACHE)
 check("CACHE 2" "${test_cache}" "/path/to")
 unset(test_cache CACHE)
-get_filename_component(test_cache "/path/to/other/filename.ext.in" PATH CACHE)
+get_filename_component(test_cache "/path/to/other/filename.ext.in" DIRECTORY CACHE)
 check("CACHE 3" "${test_cache}" "/path/to/other")

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ec1ba9b0ae27a5731b98fecab648fa3edcfcffa2
commit ec1ba9b0ae27a5731b98fecab648fa3edcfcffa2
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 16 09:27:51 2013 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 16 09:35:29 2013 -0400

    get_filename_component: Add explicit unit tests
    
    Add test RunCMake.get_filename_component to cover cases of the command.
    Remove redundant coverage of these cases from the "complex" tests.

diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx
index 27d70ad..e904f28 100644
--- a/Tests/Complex/Executable/complex.cxx
+++ b/Tests/Complex/Executable/complex.cxx
@@ -635,86 +635,6 @@ int main()
     }
 
   // ----------------------------------------------------------------------
-  // Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
-
-#ifndef FILENAME_VAR_PATH_NAME
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_PATH_NAME is not defined.");
-#else
-  if((strcmp(FILENAME_VAR_PATH_NAME, "Complex") == 0) ||
-     (strcmp(FILENAME_VAR_PATH_NAME, "ComplexOneConfig") == 0))
-    {
-    cmPassed("FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME);
-    }
-  else
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME);
-    }
-#endif
-
-#ifndef FILENAME_VAR_NAME
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_NAME is not defined.");
-#else
-  if(strcmp(FILENAME_VAR_NAME, "VarTests.cmake") != 0)
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_NAME == ", FILENAME_VAR_NAME);
-    }
-  else
-    {
-    cmPassed("FILENAME_VAR_NAME == ", FILENAME_VAR_NAME);
-    }
-#endif
-
-#ifndef FILENAME_VAR_EXT
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_EXT is not defined.");
-#else
-  if(strcmp(FILENAME_VAR_EXT, ".cmake") != 0)
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_EXT == ", FILENAME_VAR_EXT);
-    }
-  else
-    {
-    cmPassed("FILENAME_VAR_EXT == ", FILENAME_VAR_EXT);
-    }
-#endif
-
-#ifndef FILENAME_VAR_NAME_WE
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_NAME_WE is not defined.");
-#else
-  if(strcmp(FILENAME_VAR_NAME_WE, "VarTests") != 0)
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_NAME_WE == ", FILENAME_VAR_NAME_WE);
-    }
-  else
-    {
-    cmPassed("FILENAME_VAR_NAME_WE == ", FILENAME_VAR_NAME_WE);
-    }
-#endif
-
-#ifndef PATH_VAR_NAME
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "PATH_VAR_NAME is not defined.");
-#else
-  if((strcmp(PATH_VAR_NAME, "Complex") == 0) ||
-     (strcmp(PATH_VAR_NAME, "ComplexOneConfig") == 0))
-    {
-    cmPassed("PATH_VAR_NAME == ", PATH_VAR_NAME);
-    }
-  else
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "PATH_VAR_NAME == ", PATH_VAR_NAME);
-    }
-#endif
-
-  // ----------------------------------------------------------------------
   // Test LOAD_CACHE
 
 #ifndef CACHE_TEST_VAR1
diff --git a/Tests/Complex/VarTests.cmake b/Tests/Complex/VarTests.cmake
index 52ec1fc..70b803a 100644
--- a/Tests/Complex/VarTests.cmake
+++ b/Tests/Complex/VarTests.cmake
@@ -182,17 +182,3 @@ set(FOREACH_CONCAT "")
 foreach (INDEX a;b;c;d;e;f;g)
   set(FOREACH_CONCAT "${FOREACH_CONCAT}${INDEX}")
 endforeach()
-
-#
-# Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
-#
-find_file(FILENAME_VAR "VarTests.cmake" ${Complex_SOURCE_DIR})
-
-get_filename_component(FILENAME_VAR_PATH ${FILENAME_VAR} PATH)
-get_filename_component(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME)
-get_filename_component(FILENAME_VAR_NAME ${FILENAME_VAR} NAME)
-get_filename_component(FILENAME_VAR_EXT ${FILENAME_VAR} EXT)
-get_filename_component(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE CACHE)
-
-find_path(PATH_VAR "cmTestConfigure.h.in" ${Complex_SOURCE_DIR})
-get_filename_component(PATH_VAR_NAME ${PATH_VAR} NAME)
diff --git a/Tests/Complex/cmTestConfigure.h.in b/Tests/Complex/cmTestConfigure.h.in
index 7741b6f..d7424b1 100644
--- a/Tests/Complex/cmTestConfigure.h.in
+++ b/Tests/Complex/cmTestConfigure.h.in
@@ -15,15 +15,6 @@
 // Test WHILE
 #define WHILE_VALUE ${while_var}
 
-// Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
-
-#define FILENAME_VAR_PATH_NAME "${FILENAME_VAR_PATH_NAME}"
-#define FILENAME_VAR_NAME "${FILENAME_VAR_NAME}"
-#define FILENAME_VAR_EXT "${FILENAME_VAR_EXT}"
-#define FILENAME_VAR_NAME_WE "${FILENAME_VAR_NAME_WE}"
-
-#define PATH_VAR_NAME "${PATH_VAR_NAME}"
-
 // Test LOAD_CACHE
 
 #define CACHE_TEST_VAR1 "${CACHE_TEST_VAR1}"
diff --git a/Tests/ComplexOneConfig/Executable/complex.cxx b/Tests/ComplexOneConfig/Executable/complex.cxx
index 27d70ad..e904f28 100644
--- a/Tests/ComplexOneConfig/Executable/complex.cxx
+++ b/Tests/ComplexOneConfig/Executable/complex.cxx
@@ -635,86 +635,6 @@ int main()
     }
 
   // ----------------------------------------------------------------------
-  // Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
-
-#ifndef FILENAME_VAR_PATH_NAME
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_PATH_NAME is not defined.");
-#else
-  if((strcmp(FILENAME_VAR_PATH_NAME, "Complex") == 0) ||
-     (strcmp(FILENAME_VAR_PATH_NAME, "ComplexOneConfig") == 0))
-    {
-    cmPassed("FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME);
-    }
-  else
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_PATH_NAME == ", FILENAME_VAR_PATH_NAME);
-    }
-#endif
-
-#ifndef FILENAME_VAR_NAME
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_NAME is not defined.");
-#else
-  if(strcmp(FILENAME_VAR_NAME, "VarTests.cmake") != 0)
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_NAME == ", FILENAME_VAR_NAME);
-    }
-  else
-    {
-    cmPassed("FILENAME_VAR_NAME == ", FILENAME_VAR_NAME);
-    }
-#endif
-
-#ifndef FILENAME_VAR_EXT
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_EXT is not defined.");
-#else
-  if(strcmp(FILENAME_VAR_EXT, ".cmake") != 0)
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_EXT == ", FILENAME_VAR_EXT);
-    }
-  else
-    {
-    cmPassed("FILENAME_VAR_EXT == ", FILENAME_VAR_EXT);
-    }
-#endif
-
-#ifndef FILENAME_VAR_NAME_WE
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "FILENAME_VAR_NAME_WE is not defined.");
-#else
-  if(strcmp(FILENAME_VAR_NAME_WE, "VarTests") != 0)
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "FILENAME_VAR_NAME_WE == ", FILENAME_VAR_NAME_WE);
-    }
-  else
-    {
-    cmPassed("FILENAME_VAR_NAME_WE == ", FILENAME_VAR_NAME_WE);
-    }
-#endif
-
-#ifndef PATH_VAR_NAME
-  cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-         "PATH_VAR_NAME is not defined.");
-#else
-  if((strcmp(PATH_VAR_NAME, "Complex") == 0) ||
-     (strcmp(PATH_VAR_NAME, "ComplexOneConfig") == 0))
-    {
-    cmPassed("PATH_VAR_NAME == ", PATH_VAR_NAME);
-    }
-  else
-    {
-    cmFailed("the FIND_FILE or GET_FILENAME_COMPONENT command is broken, "
-           "PATH_VAR_NAME == ", PATH_VAR_NAME);
-    }
-#endif
-
-  // ----------------------------------------------------------------------
   // Test LOAD_CACHE
 
 #ifndef CACHE_TEST_VAR1
diff --git a/Tests/ComplexOneConfig/VarTests.cmake b/Tests/ComplexOneConfig/VarTests.cmake
index 52ec1fc..70b803a 100644
--- a/Tests/ComplexOneConfig/VarTests.cmake
+++ b/Tests/ComplexOneConfig/VarTests.cmake
@@ -182,17 +182,3 @@ set(FOREACH_CONCAT "")
 foreach (INDEX a;b;c;d;e;f;g)
   set(FOREACH_CONCAT "${FOREACH_CONCAT}${INDEX}")
 endforeach()
-
-#
-# Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
-#
-find_file(FILENAME_VAR "VarTests.cmake" ${Complex_SOURCE_DIR})
-
-get_filename_component(FILENAME_VAR_PATH ${FILENAME_VAR} PATH)
-get_filename_component(FILENAME_VAR_PATH_NAME ${FILENAME_VAR_PATH} NAME)
-get_filename_component(FILENAME_VAR_NAME ${FILENAME_VAR} NAME)
-get_filename_component(FILENAME_VAR_EXT ${FILENAME_VAR} EXT)
-get_filename_component(FILENAME_VAR_NAME_WE ${FILENAME_VAR} NAME_WE CACHE)
-
-find_path(PATH_VAR "cmTestConfigure.h.in" ${Complex_SOURCE_DIR})
-get_filename_component(PATH_VAR_NAME ${PATH_VAR} NAME)
diff --git a/Tests/ComplexOneConfig/cmTestConfigure.h.in b/Tests/ComplexOneConfig/cmTestConfigure.h.in
index 7741b6f..d7424b1 100644
--- a/Tests/ComplexOneConfig/cmTestConfigure.h.in
+++ b/Tests/ComplexOneConfig/cmTestConfigure.h.in
@@ -15,15 +15,6 @@
 // Test WHILE
 #define WHILE_VALUE ${while_var}
 
-// Test FIND_FILE, FIND_PATH and various GET_FILENAME_COMPONENT combinations
-
-#define FILENAME_VAR_PATH_NAME "${FILENAME_VAR_PATH_NAME}"
-#define FILENAME_VAR_NAME "${FILENAME_VAR_NAME}"
-#define FILENAME_VAR_EXT "${FILENAME_VAR_EXT}"
-#define FILENAME_VAR_NAME_WE "${FILENAME_VAR_NAME_WE}"
-
-#define PATH_VAR_NAME "${PATH_VAR_NAME}"
-
 // Test LOAD_CACHE
 
 #define CACHE_TEST_VAR1 "${CACHE_TEST_VAR1}"
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 402c8a9..f676107 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -71,6 +71,7 @@ add_RunCMake_test(CompatibleInterface)
 add_RunCMake_test(add_dependencies)
 add_RunCMake_test(build_command)
 add_RunCMake_test(find_package)
+add_RunCMake_test(get_filename_component)
 add_RunCMake_test(include)
 add_RunCMake_test(include_directories)
 add_RunCMake_test(list)
diff --git a/Tests/RunCMake/get_filename_component/CMakeLists.txt b/Tests/RunCMake/get_filename_component/CMakeLists.txt
new file mode 100644
index 0000000..e8db6b0
--- /dev/null
+++ b/Tests/RunCMake/get_filename_component/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/get_filename_component/KnownComponents.cmake b/Tests/RunCMake/get_filename_component/KnownComponents.cmake
new file mode 100644
index 0000000..d5becc0
--- /dev/null
+++ b/Tests/RunCMake/get_filename_component/KnownComponents.cmake
@@ -0,0 +1,32 @@
+macro(check desc actual expect)
+  if(NOT "x${actual}" STREQUAL "x${expect}")
+    message(SEND_ERROR "${desc}: got \"${actual}\", not \"${expect}\"")
+  endif()
+endmacro()
+
+set(filename "/path/to/filename.ext.in")
+set(expect_PATH "/path/to")
+set(expect_NAME "filename.ext.in")
+set(expect_EXT ".ext.in")
+set(expect_NAME_WE "filename")
+foreach(c PATH NAME EXT NAME_WE)
+  get_filename_component(actual_${c} "${filename}" ${c})
+  check("${c}" "${actual_${c}}" "${expect_${c}}")
+endforeach()
+
+get_filename_component(test_slashes "c:\\path\\to\\filename.ext.in" PATH)
+check("PATH from backslashes" "${test_slashes}" "c:/path/to")
+
+get_filename_component(test_winroot "c:\\filename.ext.in" PATH)
+check("PATH in windows root" "${test_winroot}" "c:/")
+
+get_filename_component(test_absolute "/path/to/a/../filename.ext.in" ABSOLUTE)
+check("ABSOLUTE" "${test_absolute}" "/path/to/filename.ext.in")
+
+get_filename_component(test_cache "/path/to/filename.ext.in" PATH CACHE)
+check("CACHE 1" "${test_cache}" "/path/to")
+get_filename_component(test_cache "/path/to/other/filename.ext.in" PATH CACHE)
+check("CACHE 2" "${test_cache}" "/path/to")
+unset(test_cache CACHE)
+get_filename_component(test_cache "/path/to/other/filename.ext.in" PATH CACHE)
+check("CACHE 3" "${test_cache}" "/path/to/other")
diff --git a/Tests/RunCMake/get_filename_component/RunCMakeTest.cmake b/Tests/RunCMake/get_filename_component/RunCMakeTest.cmake
new file mode 100644
index 0000000..156fc8f
--- /dev/null
+++ b/Tests/RunCMake/get_filename_component/RunCMakeTest.cmake
@@ -0,0 +1,4 @@
+include(RunCMake)
+
+run_cmake(KnownComponents)
+run_cmake(UnknownComponent)
diff --git a/Tests/RunCMake/get_filename_component/UnknownComponent-result.txt b/Tests/RunCMake/get_filename_component/UnknownComponent-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/get_filename_component/UnknownComponent-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/get_filename_component/UnknownComponent-stderr.txt b/Tests/RunCMake/get_filename_component/UnknownComponent-stderr.txt
new file mode 100644
index 0000000..b146e5b
--- /dev/null
+++ b/Tests/RunCMake/get_filename_component/UnknownComponent-stderr.txt
@@ -0,0 +1,4 @@
+CMake Error at UnknownComponent.cmake:1 \(get_filename_component\):
+  get_filename_component unknown component BOGUS
+Call Stack \(most recent call first\):
+  CMakeLists.txt:[0-9]+ \(include\)
diff --git a/Tests/RunCMake/get_filename_component/UnknownComponent.cmake b/Tests/RunCMake/get_filename_component/UnknownComponent.cmake
new file mode 100644
index 0000000..06abc51
--- /dev/null
+++ b/Tests/RunCMake/get_filename_component/UnknownComponent.cmake
@@ -0,0 +1 @@
+get_filename_component(var "/path/to/filename.ext.in" BOGUS)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=df71f968cd269854ab15147b012b6f07b1da6109
commit df71f968cd269854ab15147b012b6f07b1da6109
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 16 08:58:42 2013 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 16 09:02:40 2013 -0400

    get_filename_component: Document path components more clearly (#14091)
    
    Organize component names in a table to explain each in more detail.
    Clearly state that PATH is the directory name.

diff --git a/Source/cmGetFilenameComponentCommand.h b/Source/cmGetFilenameComponentCommand.h
index c461016..f294daa 100644
--- a/Source/cmGetFilenameComponentCommand.h
+++ b/Source/cmGetFilenameComponentCommand.h
@@ -62,15 +62,16 @@ public:
   virtual const char* GetFullDocumentation() const
     {
     return
-      "  get_filename_component(<VAR> FileName\n"
-      "                         PATH|ABSOLUTE|NAME|EXT|NAME_WE|REALPATH\n"
-      "                         [CACHE])\n"
-      "Set <VAR> to be the path (PATH), file name (NAME), file "
-      "extension (EXT), file name without extension (NAME_WE) of FileName, "
-      "the full path (ABSOLUTE), or the full path with all symlinks "
-      "resolved (REALPATH).  "
-      "Note that the path is converted to Unix slashes format and has no "
-      "trailing slashes. The longest file extension is always considered. "
+      "  get_filename_component(<VAR> <FileName> <COMP> [CACHE])\n"
+      "Set <VAR> to a component of <FileName>, where <COMP> is one of:\n"
+      " PATH      = Directory without file name\n"
+      " NAME      = File name without directory\n"
+      " EXT       = File name longest extension (.b.c from d/a.b.c)\n"
+      " NAME_WE   = File name without directory or longest extension\n"
+      " ABSOLUTE  = Full path to file\n"
+      " REALPATH  = Full path to existing file with symlinks resolved\n"
+      "Paths are returned with forward slashes and have no trailing slahes. "
+      "The longest file extension is always considered. "
       "If the optional CACHE argument is specified, the result variable is "
       "added to the cache.\n"
       "  get_filename_component(<VAR> FileName\n"

-----------------------------------------------------------------------

Summary of changes:
 Source/cmGetFilenameComponentCommand.cxx           |    2 +-
 Source/cmGetFilenameComponentCommand.h             |   20 +++--
 Tests/Complex/Executable/complex.cxx               |   80 --------------------
 Tests/Complex/VarTests.cmake                       |   14 ----
 Tests/Complex/cmTestConfigure.h.in                 |    9 --
 Tests/ComplexOneConfig/Executable/complex.cxx      |   80 --------------------
 Tests/ComplexOneConfig/VarTests.cmake              |   14 ----
 Tests/ComplexOneConfig/cmTestConfigure.h.in        |    9 --
 Tests/RunCMake/CMakeLists.txt                      |    1 +
 .../CMakeLists.txt                                 |    0
 .../get_filename_component/KnownComponents.cmake   |   33 ++++++++
 .../get_filename_component/RunCMakeTest.cmake      |    4 +
 .../UnknownComponent-result.txt}                   |    0
 .../UnknownComponent-stderr.txt                    |    4 +
 .../get_filename_component/UnknownComponent.cmake  |    1 +
 15 files changed, 55 insertions(+), 216 deletions(-)
 copy Tests/RunCMake/{CMP0004 => get_filename_component}/CMakeLists.txt (100%)
 create mode 100644 Tests/RunCMake/get_filename_component/KnownComponents.cmake
 create mode 100644 Tests/RunCMake/get_filename_component/RunCMakeTest.cmake
 copy Tests/RunCMake/{CMP0004/CMP0004-NEW-result.txt => get_filename_component/UnknownComponent-result.txt} (100%)
 create mode 100644 Tests/RunCMake/get_filename_component/UnknownComponent-stderr.txt
 create mode 100644 Tests/RunCMake/get_filename_component/UnknownComponent.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list