in Sources/SwiftDriver/SwiftScan/SwiftScan.swift [273:418]
init(_ swiftscan: DLHandle) throws {
self.init()
// MARK: Optional Methods
// Future optional methods can be queried here
func loadOptional<T>(_ symbol: String) throws -> T? {
guard let sym: T = dlsym(swiftscan, symbol: symbol) else {
return nil
}
return sym
}
// Supported features/flags query
self.swiftscan_string_set_dispose =
try loadOptional("swiftscan_string_set_dispose")
self.swiftscan_compiler_supported_arguments_query =
try loadOptional("swiftscan_compiler_supported_arguments_query")
self.swiftscan_compiler_supported_features_query =
try loadOptional("swiftscan_compiler_supported_features_query")
// Dependency scanner serialization/deserialization features
self.swiftscan_scanner_cache_serialize =
try loadOptional("swiftscan_scanner_cache_serialize")
self.swiftscan_scanner_cache_load =
try loadOptional("swiftscan_scanner_cache_load")
self.swiftscan_scanner_cache_reset =
try loadOptional("swiftscan_scanner_cache_reset")
// Clang dependency captured PCM args
self.swiftscan_clang_detail_get_captured_pcm_args =
try loadOptional("swiftscan_clang_detail_get_captured_pcm_args")
// MARK: Required Methods
func loadRequired<T>(_ symbol: String) throws -> T {
guard let sym: T = dlsym(swiftscan, symbol: symbol) else {
throw DependencyScanningError.missingRequiredSymbol(symbol)
}
return sym
}
self.swiftscan_scanner_create =
try loadRequired("swiftscan_scanner_create")
self.swiftscan_scanner_dispose =
try loadRequired("swiftscan_scanner_dispose")
self.swiftscan_scan_invocation_get_working_directory =
try loadRequired("swiftscan_scan_invocation_get_working_directory")
self.swiftscan_scan_invocation_set_argv =
try loadRequired("swiftscan_scan_invocation_set_argv")
self.swiftscan_scan_invocation_set_working_directory =
try loadRequired("swiftscan_scan_invocation_set_working_directory")
self.swiftscan_scan_invocation_create =
try loadRequired("swiftscan_scan_invocation_create")
self.swiftscan_import_set_get_imports =
try loadRequired("swiftscan_import_set_get_imports")
self.swiftscan_batch_scan_entry_create =
try loadRequired("swiftscan_batch_scan_entry_create")
self.swiftscan_batch_scan_entry_get_is_swift =
try loadRequired("swiftscan_batch_scan_entry_get_is_swift")
self.swiftscan_batch_scan_entry_get_arguments =
try loadRequired("swiftscan_batch_scan_entry_get_arguments")
self.swiftscan_batch_scan_entry_get_module_name =
try loadRequired("swiftscan_batch_scan_entry_get_module_name")
self.swiftscan_batch_scan_entry_set_is_swift =
try loadRequired("swiftscan_batch_scan_entry_set_is_swift")
self.swiftscan_batch_scan_entry_set_arguments =
try loadRequired("swiftscan_batch_scan_entry_set_arguments")
self.swiftscan_batch_scan_entry_set_module_name =
try loadRequired("swiftscan_batch_scan_entry_set_module_name")
self.swiftscan_batch_scan_input_set_modules =
try loadRequired("swiftscan_batch_scan_input_set_modules")
self.swiftscan_batch_scan_input_create =
try loadRequired("swiftscan_batch_scan_input_create")
self.swiftscan_clang_detail_get_command_line =
try loadRequired("swiftscan_clang_detail_get_command_line")
self.swiftscan_clang_detail_get_context_hash =
try loadRequired("swiftscan_clang_detail_get_context_hash")
self.swiftscan_clang_detail_get_module_map_path =
try loadRequired("swiftscan_clang_detail_get_module_map_path")
self.swiftscan_swift_placeholder_detail_get_module_source_info_path =
try loadRequired("swiftscan_swift_placeholder_detail_get_module_source_info_path")
self.swiftscan_swift_placeholder_detail_get_module_doc_path =
try loadRequired("swiftscan_swift_placeholder_detail_get_module_doc_path")
self.swiftscan_swift_placeholder_detail_get_compiled_module_path =
try loadRequired("swiftscan_swift_placeholder_detail_get_compiled_module_path")
self.swiftscan_swift_binary_detail_get_module_source_info_path =
try loadRequired("swiftscan_swift_binary_detail_get_module_source_info_path")
self.swiftscan_swift_binary_detail_get_module_doc_path =
try loadRequired("swiftscan_swift_binary_detail_get_module_doc_path")
self.swiftscan_swift_binary_detail_get_compiled_module_path =
try loadRequired("swiftscan_swift_binary_detail_get_compiled_module_path")
self.swiftscan_swift_textual_detail_get_is_framework =
try loadRequired("swiftscan_swift_textual_detail_get_is_framework")
self.swiftscan_swift_textual_detail_get_context_hash =
try loadRequired("swiftscan_swift_textual_detail_get_context_hash")
self.swiftscan_dependency_graph_get_main_module_name =
try loadRequired("swiftscan_dependency_graph_get_main_module_name")
self.swiftscan_dependency_graph_get_dependencies =
try loadRequired("swiftscan_dependency_graph_get_dependencies")
self.swiftscan_module_info_get_module_name =
try loadRequired("swiftscan_module_info_get_module_name")
self.swiftscan_module_info_get_module_path =
try loadRequired("swiftscan_module_info_get_module_path")
self.swiftscan_module_info_get_source_files =
try loadRequired("swiftscan_module_info_get_source_files")
self.swiftscan_module_info_get_direct_dependencies =
try loadRequired("swiftscan_module_info_get_direct_dependencies")
self.swiftscan_module_info_get_details =
try loadRequired("swiftscan_module_info_get_details")
self.swiftscan_module_detail_get_kind =
try loadRequired("swiftscan_module_detail_get_kind")
self.swiftscan_swift_textual_detail_get_module_interface_path =
try loadRequired("swiftscan_swift_textual_detail_get_module_interface_path")
self.swiftscan_swift_textual_detail_get_compiled_module_candidates =
try loadRequired("swiftscan_swift_textual_detail_get_compiled_module_candidates")
self.swiftscan_swift_textual_detail_get_bridging_header_path =
try loadRequired("swiftscan_swift_textual_detail_get_bridging_header_path")
self.swiftscan_swift_textual_detail_get_bridging_source_files =
try loadRequired("swiftscan_swift_textual_detail_get_bridging_source_files")
self.swiftscan_swift_textual_detail_get_bridging_module_dependencies =
try loadRequired("swiftscan_swift_textual_detail_get_bridging_module_dependencies")
self.swiftscan_swift_textual_detail_get_command_line =
try loadRequired("swiftscan_swift_textual_detail_get_command_line")
self.swiftscan_swift_textual_detail_get_extra_pcm_args =
try loadRequired("swiftscan_swift_textual_detail_get_extra_pcm_args")
self.swiftscan_scan_invocation_get_argc =
try loadRequired("swiftscan_scan_invocation_get_argc")
self.swiftscan_scan_invocation_get_argv =
try loadRequired("swiftscan_scan_invocation_get_argv")
self.swiftscan_dependency_graph_dispose =
try loadRequired("swiftscan_dependency_graph_dispose")
self.swiftscan_import_set_dispose =
try loadRequired("swiftscan_import_set_dispose")
self.swiftscan_batch_scan_entry_dispose =
try loadRequired("swiftscan_batch_scan_entry_dispose")
self.swiftscan_batch_scan_input_dispose =
try loadRequired("swiftscan_batch_scan_input_dispose")
self.swiftscan_batch_scan_result_dispose =
try loadRequired("swiftscan_batch_scan_result_dispose")
self.swiftscan_scan_invocation_dispose =
try loadRequired("swiftscan_scan_invocation_dispose")
self.swiftscan_dependency_graph_create =
try loadRequired("swiftscan_dependency_graph_create")
self.swiftscan_batch_scan_result_create =
try loadRequired("swiftscan_batch_scan_result_create")
self.swiftscan_import_set_create =
try loadRequired("swiftscan_import_set_create")
}