void processLauncher()

in src/main/cpp/launcher/windows/src/Launcher.c [946:1008]


void processLauncher(LauncherProperties * props) {
    setOutput(props);
    if(!isOK(props) || isTerminated(props)) return;
    
    setProgressRange(props, props->launcherSize);
    if(!isOK(props) || isTerminated(props)) return;
    
    skipStub(props);
    if(!isOK(props) || isTerminated(props)) return;
    
    readDefaultRoots(props);
    if(!isOK(props) || isTerminated(props)) return;
    
    loadLocalizationStrings(props);
    if(!isOK(props) || isTerminated(props)) return;
    
    if(isOnlyHelp(props)) return;
    
    setProgressTitleString(props, getI18nProperty(props, MSG_PROGRESS_TITLE));
    setMainWindowTitle(props, getI18nProperty(props, MAIN_WINDOW_TITLE));
    showLauncherWindows(props);
    if(!isOK(props) || isTerminated(props)) return;
    
    readLauncherProperties(props);
    checkExtractionStatus(props);
    if(!isOK(props) || isTerminated(props)) return;
    
    if(props->bundledNumber > 0) {
        createTMPDir(props);
        if(isOK(props)) {
            checkFreeSpace(props, props->tmpDir, props->bundledSize);
            checkExtractionStatus(props);
        }
    }
    
    if (isOK(props) ){
        extractJVMData(props);
        checkExtractionStatus(props);
        if (isOK(props) && !props->extractOnly && !isTerminated(props)) {
            findSuitableJava(props);
        }
        
        if (isOK(props) && !isTerminated(props)) {
            extractData(props);
            checkExtractionStatus(props);
            if (isOK(props) && (props->java!=NULL)  && !isTerminated(props)) {
                setClasspathElements(props);
                if(isOK(props) && (props->java!=NULL)  && !isTerminated(props)) {
                    setAdditionalArguments(props);
                    setLauncherCommand(props);
                    Sleep(500);
                    executeMainClass(props);
                }
            }
        }
    }
    
    if(!props->extractOnly && props->tmpDirCreated) {
        writeMessageA(props, OUTPUT_LEVEL_DEBUG, 0, "... deleting temporary directory ", 1);
        deleteDirectory(props, props->tmpDir);
    }
    
}