Merge pull request #7373 from zisko/put-tests-in-time-out

Add a timeout for lit tests to help diagnose/fail long running tests
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()