@Override
	protected void postLoadProgramFixups(List<Loaded<Program>> loadedPrograms, Project project,
			LoadSpec loadSpec, List<Option> options, MessageLog log, TaskMonitor monitor)
			throws CancelledException, IOException {
		if (loadedPrograms.isEmpty() ||
			(!isLinkExistingLibraries(options) && !isLoadLibraries(options))) {
			return;
		}

		List<DomainFolder> searchFolders =
			getLibrarySearchFolders(loadedPrograms, project, options, log);

		List<LibrarySearchPath> searchPaths = getLibrarySearchPaths(
			loadedPrograms.getFirst().getDomainObject(), loadSpec, options, log, monitor);

		List<Loaded<Program>> saveablePrograms =
			loadedPrograms.stream().filter(Predicate.not(Loaded::shouldDiscard)).toList();

		monitor.initialize(saveablePrograms.size());
		for (Loaded<Program> loadedProgram : saveablePrograms) {
			monitor.increment();

			Program program = loadedProgram.getDomainObject();
			ExternalManager extManager = program.getExternalManager();
			String[] extLibNames = extManager.getExternalLibraryNames();
			if (extLibNames.length == 0 ||
				(extLibNames.length == 1 && Library.UNKNOWN.equals(extLibNames[0]))) {
				continue; // skip program if no libraries defined
			}

			monitor.setMessage("Resolving..." + program.getName());
			int id = program.startTransaction("Resolving external references");
			try {
				resolveExternalLibraries(program, saveablePrograms, searchFolders, searchPaths,
					options, monitor, log);
			}
			finally {
				program.endTransaction(id, true);
			}
		}
	}
{@inheritDoc}
<p>
Fix up program's external library entries so that they point to a path in the project.
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/AbstractLibrarySupportLoader.java