[Dependency Scanning] Initialize Swift modules in libSwiftScan on scanner creation

Resolves rdar://124100615
This commit is contained in:
Artem Chikin
2024-03-19 13:01:38 -07:00
parent db237bc7a9
commit e755e7239e

View File

@@ -15,11 +15,13 @@
//===----------------------------------------------------------------------===//
#include "swift/Basic/LLVMInitialize.h"
#include "swift/Basic/InitializeSwiftModules.h"
#include "swift/DependencyScan/DependencyScanImpl.h"
#include "swift/DependencyScan/DependencyScanningTool.h"
#include "swift/DependencyScan/StringUtils.h"
#include "swift/DriverTool/DriverTool.h"
#include "swift/Option/Options.h"
#include "swift/SIL/SILBridging.h"
using namespace swift::dependencies;
@@ -129,7 +131,11 @@ void swiftscan_scanner_cache_reset(swiftscan_scanner_t scanner) {
//=== Scanner Functions ---------------------------------------------------===//
swiftscan_scanner_t swiftscan_scanner_create(void) {
static std::mutex initializationMutex;
std::lock_guard<std::mutex> lock(initializationMutex);
INITIALIZE_LLVM();
if (!swiftModulesInitialized())
initializeSwiftModules();
return wrap(new DependencyScanningTool());
}