diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index c2e1bb4b85cd008d9bbcb6e5d965f8483211585c..edf02bec2b9b8094708d26abc36424b48f1b6aa0 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -154,6 +154,7 @@ elseif(DARWIN)
     # Support our "@executable_path/../Resources" load path for executables
     # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
     # directories.
+    file(MAKE_DIRECTORY "${SHARED_LIB_STAGING_DIR}")
     file(CREATE_LINK "Release/Resources" "${SHARED_LIB_STAGING_DIR}/Resources"
          SYMBOLIC)
 
diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt
index 161e9577847f1854302521940e98eed02c884526..9e65ceb926af6dbe54c2a601c4b9f206505defd0 100644
--- a/indra/test/CMakeLists.txt
+++ b/indra/test/CMakeLists.txt
@@ -121,6 +121,8 @@ elseif (DARWIN)
   # executable. This SHOULD properly be "$<TARGET_FILE_DIR:lltest>/Resources",
   # but the CMake $<TARGET_FILE_DIR> generator expression isn't evaluated by
   # CREATE_LINK, so fudge it.
+  # Make sure the symlink's parent directory exists...
+  file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/test")
   file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources"
        SYMBOLIC)
 endif (WINDOWS)