Merge pull request #133 from hughbe/ninjabuild-command-consolidate
Consolidate common code between NinjaBuildCommand.cpp and LaneBasedExecutionQueue.cpp
diff --git a/.gitignore b/.gitignore
index 9815d1a..c50f022 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,6 @@
# Don't check in Xcode user data.
xcuserdata
+# Visual Studio cache/options directory
+.vs/
+
diff --git a/lib/Basic/PlatformUtility.cpp b/lib/Basic/PlatformUtility.cpp
index fba346f..2498e96 100644
--- a/lib/Basic/PlatformUtility.cpp
+++ b/lib/Basic/PlatformUtility.cpp
@@ -106,7 +106,13 @@
int sys::symlink(const char *source, const char *target) {
#if defined(_WIN32)
- return ::_symlink(source, target);
+ DWORD attributes = GetFileAttributesA(source);
+ if (attributes != INVALID_FILE_ATTRIBUTES &&
+ (attributes & FILE_ATTRIBUTE_DIRECTORY) != 0) {
+ return ::CreateSymbolicLinkA(source, target, SYMBOLIC_LINK_FLAG_DIRECTORY);
+ }
+
+ return ::CreateSymbolicLinkA(source, target, 0);
#else
return ::symlink(source, target);
#endif