Merge pull request #7378 from jrose-apple/3.1-TypeLoc-willSet-didSet

When setting a willSet/didSet param's type, also set the TypeLoc
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 92ce3c5..3dc7c2d 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -252,6 +252,15 @@
               "--param" "test_sdk_overlay_dir=${SWIFTLIB_DIR}/${SWIFT_SDK_${SDK}_LIB_SUBDIR}")
         endif()
 
+        execute_process(COMMAND
+            "${PYTHON_EXECUTABLE}" "-c" "import psutil"
+            RESULT_VARIABLE python_psutil_status
+            TIMEOUT 1 # second
+            ERROR_QUIET)
+        if(NOT python_psutil_status)
+          list(APPEND LIT_ARGS "--timeout=3000") # 50 minutes
+        endif()
+
         list(APPEND LIT_ARGS "--xunit-xml-output=${SWIFT_TEST_RESULTS_DIR}/lit-tests.xml")
 
         foreach(test_subset ${TEST_SUBSETS})
diff --git a/tools/SourceKit/tools/sourcekitd/bin/InProc/CMakeLists.txt b/tools/SourceKit/tools/sourcekitd/bin/InProc/CMakeLists.txt
index 8ba7b74..0183361 100644
--- a/tools/SourceKit/tools/sourcekitd/bin/InProc/CMakeLists.txt
+++ b/tools/SourceKit/tools/sourcekitd/bin/InProc/CMakeLists.txt
@@ -1,28 +1,39 @@
 set(EXPORTED_SYMBOL_FILE "${SOURCEKITD_SOURCE_DIR}/bin/sourcekitd.exports")
 
+option(SOURCEKITD_BUILD_STATIC_INPROC
+  "Build sourcekitdInProc as a static library (in addition to a shared one)" OFF)
+
+set(sourcekitdInProc_args
+  sourcekitdInProc.cpp
+  DEPENDS SourceKitSwiftLang sourcekitdAPI
+  LLVM_COMPONENT_DEPENDS support coverage
+)
+
 if (SOURCEKIT_INSTALLING_INPROC)
   add_sourcekit_framework(sourcekitdInProc
     ${SOURCEKITD_SOURCE_DIR}/include/sourcekitd/sourcekitd.h
-    sourcekitdInProc.cpp
-    DEPENDS SourceKitSwiftLang sourcekitdAPI
-    LLVM_COMPONENT_DEPENDS support coverage
+    ${sourcekitdInProc_args}
     MODULEMAP module.modulemap
     INSTALL_IN_COMPONENT sourcekit-inproc
   )
   set_property(TARGET sourcekitdInProc APPEND_STRING PROPERTY LINK_FLAGS " -fapplication-extension")
 else()
   add_sourcekit_library(sourcekitdInProc
-    sourcekitdInProc.cpp
-    DEPENDS SourceKitSwiftLang sourcekitdAPI
-    LLVM_COMPONENT_DEPENDS support coverage
+    ${sourcekitdInProc_args}
     INSTALL_IN_COMPONENT sourcekit-inproc
-
-    # Note that this cannot be a static library due to the way it looks for the
-    # shared library path in order to get at the runtime lib path.
     SHARED
   )
 endif()
 
+# While it is possible to build this as a static library,
+# to get the runtime paths correct, it must be linked into a binary
+# that is in the same directory as the swift library directory.
+if (SOURCEKITD_BUILD_STATIC_INPROC)
+  add_sourcekit_library(sourcekitdInProc_Static
+    ${sourcekitdInProc_args}
+  )
+endif()
+
 if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
   target_link_libraries(sourcekitdInProc PUBLIC BlocksRuntime)
 endif()