浏览代码

ENH: Added cmake -E create_symlink command that behaves like ln -s.

Brad King 20 年之前
父节点
当前提交
904305e3cb
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      Source/cmake.cxx

+ 11 - 0
Source/cmake.cxx

@@ -714,6 +714,9 @@ void CMakeCommandUsage(const char* program)
     << "  write_regv key value    - write registry value\n"
     << "  delete_regv key         - delete registry value\n"
     << "  comspec                 - on windows 9x use this for RunCommand\n";
+#else
+  errorStream
+    << "  create_symlink old new  - create a symbolic link new -> old\n";
 #endif
 
   cmSystemTools::Error(errorStream.str().c_str());
@@ -852,6 +855,14 @@ int cmake::CMakeCommand(std::vector<std::string>& args)
       return 1;
       }
 
+    // Command to create a symbolic link.  Fails on platforms not
+    // supporting them.
+    else if (args[1] == "create_symlink" && args.size() == 4)
+      {
+      return cmSystemTools::CreateSymlink(args[2].c_str(),
+                                          args[3].c_str())? 0:1;
+      }
+
     // Internal CMake shared library support.
     else if (args[1] == "cmake_symlink_library" && args.size() == 5)
       {