logic: handle java not found on windows and mac

* implemented java will not be used if it is not found on system
* add jni libraries weak linked for Mac
* use dlopen for lazy library loading
* added java path to preferences
This commit is contained in:
malte_langkabel
2016-08-22 14:24:53 +02:00
parent 98eb3f124d
commit 858364b385
9 changed files with 154 additions and 37 deletions
@@ -133,6 +133,32 @@ void QtProjectWizzardContentPreferences::populateForm(QGridLayout* layout, int&
);
row++;
layout->setRowMinimumHeight(row++, 20);
// Java
layout->addWidget(createFormTitle("JAVA"), row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignLeft);
row++;
// java path
m_javaPath = new QtLocationPicker(this);
m_javaPath->setPickDirectory(true);
m_javaPath->setPlaceholderText("<jdk_root>");
layout->addWidget(createFormLabel("Java Path"), row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
layout->addWidget(m_javaPath, row, QtProjectWizzardWindow::BACK_COL);
addHelpButton(
"Location of your java installation so that dynamic libraries of JVM can be found."
, layout, row
);
row++;
layout->setRowMinimumHeight(row++, 20);
// C/C++
layout->addWidget(createFormTitle("C/C++"), row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignLeft);
row++;
}
void QtProjectWizzardContentPreferences::load()
@@ -159,6 +185,11 @@ void QtProjectWizzardContentPreferences::load()
m_threads->setCurrentIndex(appSettings->getIndexerThreadCount() - 1);
m_fatalErrors->setChecked(appSettings->getShowExternalNonFatalErrors());
if (m_javaPath)
{
m_javaPath->setText(QString::fromStdString(appSettings->getJavaPath()));
}
}
void QtProjectWizzardContentPreferences::save()
@@ -181,6 +212,11 @@ void QtProjectWizzardContentPreferences::save()
appSettings->setIndexerThreadCount(m_threads->currentIndex() + 1);
appSettings->setShowExternalNonFatalErrors(m_fatalErrors->isChecked());
if (m_javaPath)
{
appSettings->setJavaPath(m_javaPath->getText().toStdString());
}
}
bool QtProjectWizzardContentPreferences::check()