public static void loadProject()

in jps-wrapper/src/main/java/org/jetbrains/jps/model/serialization/JpsProjectLoader.java [124:155]


    public static void loadProject(JpsProject project,
                                   Map<String, String> pathVariables,
                                   @NotNull JpsPathMapper pathMapper,
                                   @NotNull Path projectPath,
                                   @Nullable Path projectBasePath,
                                   @Nullable Path externalConfigurationDirectory,
                                   @NotNull Executor executor,
                                   boolean loadUnloadedModules) throws IOException {
        if (Files.isRegularFile(projectPath) && projectPath.toString().endsWith(".ipr")) {
            new JpsProjectLoader(project, pathVariables, pathMapper, projectPath.getParent(), null, loadUnloadedModules)
                    .loadFromIpr(projectPath, executor);
        }
        else {
            Path dotIdea = projectPath.resolve(PathMacroUtil.DIRECTORY_STORE_NAME);
            Path directory;
            if (Files.isDirectory(dotIdea)) {
                directory = dotIdea;
            }
            else if (Files.isDirectory(projectPath) && projectPath.endsWith(PathMacroUtil.DIRECTORY_STORE_NAME)) {
                directory = projectPath;
            }
            else {
                throw new IOException("Cannot find IntelliJ IDEA project files at " + projectPath);
            }
            JpsProjectLoader jpsProjectLoader = new JpsProjectLoader(project, pathVariables, pathMapper, directory.getParent(), externalConfigurationDirectory, loadUnloadedModules);
            if (projectBasePath != null) {
                JpsMacroExpander macroExpander = jpsProjectLoader.myComponentLoader.getMacroExpander();
                macroExpander.addFileHierarchyReplacements("PROJECT_DIR", projectBasePath.toFile());
            }
            jpsProjectLoader.loadFromDirectory(directory, executor);
        }
    }