[platform] adds TB-specific *.vmoptions lookup (IDEA-169987)

This commit is contained in:
Roman Shevchenko
2017-06-14 16:26:23 +03:00
parent 2ab48b70a9
commit 18b4b99555
7 changed files with 56 additions and 30 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -50,12 +50,10 @@ if [ -x "$READLINK" ]; then
done
fi
IDE_BIN_HOME=`dirname "$SCRIPT_LOCATION"`
if [ "$IDE_BIN_HOME" = "." ]; then
IDE_HOME=".."
else
IDE_HOME=`dirname "$IDE_BIN_HOME"`
fi
cd "`dirname "$SCRIPT_LOCATION"`"
IDE_BIN_HOME=`pwd`
IDE_HOME=`dirname "$IDE_BIN_HOME"`
cd "$OLDPWD"
# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
@@ -158,6 +156,9 @@ VM_OPTIONS_FILE=""
if [ -n "$@@product_uc@@_VM_OPTIONS" -a -r "$@@product_uc@@_VM_OPTIONS" ]; then
# explicit
VM_OPTIONS_FILE="$@@product_uc@@_VM_OPTIONS"
elif [ -r "$IDE_HOME.vmoptions" ]; then
# Toolbox
VM_OPTIONS_FILE="$IDE_HOME.vmoptions"
elif [ -r "$HOME/.@@system_selector@@/config/@@vm_options@@$BITS.vmoptions" ]; then
# user-overridden
VM_OPTIONS_FILE="$HOME/.@@system_selector@@/config/@@vm_options@@$BITS.vmoptions"
@@ -175,6 +176,7 @@ if [ -r "$VM_OPTIONS_FILE" ]; then
VM_OPTIONS=`"$CAT" "$VM_OPTIONS_FILE" | "$GREP" -v "^#.*"`
else
message "Cannot find VM options file"
exit 1
fi
IS_EAP="@@isEap@@"

View File

@@ -8,7 +8,7 @@
:: Ensure IDE_HOME points to the directory where the IDE is installed.
:: ---------------------------------------------------------------------
SET IDE_BIN_DIR=%~dp0
SET IDE_HOME=%IDE_BIN_DIR%\..
FOR /F "delims=" %%i in ("%IDE_BIN_DIR%\..") DO SET IDE_HOME=%%~fi
:: ---------------------------------------------------------------------
:: Locate a JDK installation directory which will be used to run the IDE.
@@ -49,9 +49,8 @@ IF EXIST "%JAVA_HOME%" SET JDK=%JAVA_HOME%
SET JAVA_EXE=%JDK%\bin\java.exe
IF NOT EXIST "%JAVA_EXE%" SET JAVA_EXE=%JDK%\jre\bin\java.exe
IF NOT EXIST "%JAVA_EXE%" (
ECHO ERROR: cannot start IntelliJ IDEA.
ECHO ERROR: cannot start @@product_full@@.
ECHO No JDK found. Please validate either @@product_uc@@_JDK, JDK_HOME or JAVA_HOME points to valid JDK installation.
ECHO
EXIT /B
)
@@ -64,11 +63,27 @@ IF EXIST "%JRE%\lib\amd64" SET BITS=64
:: ---------------------------------------------------------------------
IF NOT "%@@product_uc@@_PROPERTIES%" == "" SET IDE_PROPERTIES_PROPERTY="-Didea.properties.file=%@@product_uc@@_PROPERTIES%"
SET USER_VM_OPTIONS_FILE=%USERPROFILE%\.@@system_selector@@\config\@@vm_options@@.vmoptions
SET VM_OPTIONS_FILE=%IDE_BIN_DIR%\@@vm_options@@.vmoptions
IF EXIST "%IDE_BIN_DIR%\win\@@vm_options@@.vmoptions" SET VM_OPTIONS_FILE=%IDE_BIN_DIR%\win\@@vm_options@@.vmoptions
IF EXIST %USER_VM_OPTIONS_FILE% SET VM_OPTIONS_FILE=%USER_VM_OPTIONS_FILE%
IF NOT "%@@product_uc@@_VM_OPTIONS%" == "" SET VM_OPTIONS_FILE=%@@product_uc@@_VM_OPTIONS%
:: explicit
SET VM_OPTIONS_FILE=%@@product_uc@@_VM_OPTIONS%
IF NOT EXIST "%VM_OPTIONS_FILE%" (
:: Toolbox
SET VM_OPTIONS_FILE=%IDE_HOME%.vmoptions
)
IF NOT EXIST "%VM_OPTIONS_FILE%" (
:: user-overridden
SET VM_OPTIONS_FILE=%USERPROFILE%\.@@system_selector@@\config\@@vm_options@@.vmoptions
)
IF NOT EXIST "%VM_OPTIONS_FILE%" (
:: default, standard installation
SET VM_OPTIONS_FILE=%IDE_BIN_DIR%\@@vm_options@@.vmoptions
)
IF NOT EXIST "%VM_OPTIONS_FILE%" (
:: default, universal package
SET VM_OPTIONS_FILE=%IDE_BIN_DIR%\win\@@vm_options@@.vmoptions
)
IF NOT EXIST "%VM_OPTIONS_FILE%" (
ECHO ERROR: cannot find VM options file.
)
SET ACC=
FOR /F "eol=# usebackq delims=" %%i IN ("%VM_OPTIONS_FILE%") DO CALL "%IDE_BIN_DIR%\append.bat" "%%i"

Binary file not shown.

View File

@@ -341,6 +341,10 @@ NSString *getDefaultFilePath(NSString *fileName) {
return fullFileName;
}
NSString *getToolboxVMOptionsPath() {
return [NSString stringWithFormat:@"%@.vmoptions", [[NSBundle mainBundle] bundlePath]];
}
NSString *getApplicationVMOptionsPath() {
return getDefaultFilePath([NSString stringWithFormat:@"/bin/%@.vmoptions", getExecutable()]);
}
@@ -357,30 +361,28 @@ NSString *getOverrideVMOptionsPath() {
}
NSArray *parseVMOptions() {
NSString *vmOptionsFile = getApplicationVMOptionsPath();
NSString *userVMOptiosFile = getUserVMOptionsPath();
NSString *envVarVMOptiosFile = getOverrideVMOptionsPath();
if ([[NSFileManager defaultManager] fileExistsAtPath:userVMOptiosFile]) {
vmOptionsFile = userVMOptiosFile;
NSString *vmOptionsFile = getOverrideVMOptionsPath();
if (! [[NSFileManager defaultManager] fileExistsAtPath:vmOptionsFile]) {
vmOptionsFile = getToolboxVMOptionsPath();
}
if ([[NSFileManager defaultManager] fileExistsAtPath:envVarVMOptiosFile]) {
vmOptionsFile = envVarVMOptiosFile;
if (! [[NSFileManager defaultManager] fileExistsAtPath:vmOptionsFile]) {
vmOptionsFile = getUserVMOptionsPath();
}
if (! [[NSFileManager defaultManager] fileExistsAtPath:vmOptionsFile]) {
vmOptionsFile = getApplicationVMOptionsPath();
}
NSMutableArray *options = [NSMutableArray array];
NSMutableArray *used = [NSMutableArray array];
NSLog(@"Processing VMOptions file at %@", vmOptionsFile);
NSArray *contents = [VMOptionsReader readFile:vmOptionsFile];
if (contents != nil) {
NSLog(@"Done");
[used addObject:vmOptionsFile];
[options addObjectsFromArray:contents];
[options addObject:[NSString stringWithFormat:@"-Djb.vmOptionsFile=%@", vmOptionsFile]];
} else {
NSLog(@"No content found at %@ ", vmOptionsFile);
NSLog(@"No content found at %@", vmOptionsFile);
}
[options addObject:[NSString stringWithFormat:@"-Djb.vmOptionsFile=%@", [used componentsJoinedByString:@","]]];
return options;
}
@@ -431,15 +433,15 @@ NSString *getOverridePropertiesPath() {
- (const char *)mainClassName {
NSDictionary *jvmInfo = [[NSBundle mainBundle] objectForInfoDictionaryKey:JVMOptions];
NSString *mainClass = [jvmInfo objectForKey:@"MainClass"];
if (mainClass == nil || mainClass == NULL) {
NSLog(@"Info.plist is corrupted, Absent MainClass key.");
exit(-1);
}
char *answer = strdup([[jvmInfo objectForKey:@"MainClass"] UTF8String]);
char *cur = answer;
while (*cur) {
if (*cur == '.') {
@@ -447,7 +449,7 @@ NSString *getOverridePropertiesPath() {
}
cur++;
}
return answer;
}

View File

@@ -508,6 +508,12 @@ bool LoadVMOptions()
}
}
std::wstring::size_type pos = module.find_last_of(L"\\bin\\", -1);
if (pos > 0)
{
files.push_back(module.substr(0, pos - 5) + L".vmoptions");
}
if (LoadString(hInst, IDS_VM_OPTIONS_PATH, buffer, _MAX_PATH))
{
ExpandEnvironmentStrings(buffer, copy, _MAX_PATH - 1);
@@ -516,6 +522,7 @@ bool LoadVMOptions()
}
files.push_back(module + L".vmoptions");
std::wstring used;
std::vector<std::string> vmOptionLines;