public static synchronized List<FSRL> getLibraryFsrlList(Program program, MessageLog log,
			TaskMonitor monitor) throws CancelledException {
		FileSystemService fsService = FileSystemService.getInstance();
		List<FSRL> fsrlList = new ArrayList<>();
		for (String path : pathSet) {
			monitor.checkCancelled();
			path = path.trim();
			FSRL fsrl = null;
			try {
				if (path.equals(".")) {
					FSRL providerFsrl = FSRL.fromProgram(program);
					if (providerFsrl != null) {
						try (RefdFile fileRef = fsService.getRefdFile(providerFsrl, monitor)) {
							GFile parentFile = fileRef.file.getParentFile();
							fsrl = parentFile.getFSRL();
						}
						catch (IOException e) {
							log.appendMsg("Skipping '.' search path: ", e.getMessage());
							continue;
						}
					}
				}
				else {
					fsrl = FSRL.fromString(path);
				}
			}
			catch (MalformedURLException e) {
				try {
					File f = new File(path);
					if (f.exists() && f.isAbsolute()) {
						fsrl = fsService.getLocalFSRL(f.getCanonicalFile());
					}
				}
				catch (IOException e2) {
					log.appendException(e2);
				}
			}
			if (fsrl != null) {
				fsrlList.add(fsrl);
			}
		}
		return fsrlList;
	}
Returns a {@link List} of {@link FSRL}s to search for libraries

@param program The {@link Program} being loaded
@param log The log
@param monitor A cancellable monitor
@return a {@link List} of {@link FSRL}s to search for libraries
@throws CancelledException if the user cancelled the operation
Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/LibrarySearchPathManager.java