build: offer windows 64 bit build (issue #300)

* update to clang/llvm to 3.9
* update to qt 5.8
* fixed windows javapathdetector for 64 bit java.
* added LibGui as dependency to tests
* fixed legacy Java 6 install necessary on MacOS
* fixed setting of user path for 64 bit build
* added missing pngs to windows installer
* renamed graph zoom button images
* reverted moving of setupLogging call to fix crash on deployed exe

fortune cookie message = An old acquaintance will enter your life.
This commit is contained in:
malte_langkabel
2017-02-03 14:31:43 +01:00
parent 8c0f9f2de4
commit 7f2db69995
250 changed files with 1173 additions and 1075 deletions
+4 -2
View File
@@ -102,8 +102,6 @@ int main(int argc, char *argv[])
{
QApplication::setApplicationName("Coati");
setupLogging();
if (QSysInfo::windowsVersion() != QSysInfo::WV_None)
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);
@@ -129,6 +127,8 @@ int main(int argc, char *argv[])
setupApp(argc, argv);
setupLogging();
Application::createInstance(version, nullptr, nullptr);
ScopedFunctor f([](){
Application::destroyInstance();
@@ -179,6 +179,8 @@ int main(int argc, char *argv[])
setupApp(argc, argv);
setupLogging();
qtApp.setAttribute(Qt::AA_UseHighDpiPixmaps);
QtViewFactory viewFactory;
@@ -66,8 +66,6 @@ Task::TaskState TaskReturnSuccessWhile<T>::doUpdate(std::shared_ptr<Blackboard>
return STATE_SUCCESS;
}
break;
default:
return STATE_FAILURE;
}
return STATE_FAILURE;
}
@@ -129,6 +129,8 @@ void CxxAstVisitorComponentDeclRefKind::visitCastExpr(clang::CastExpr* s)
case clang::CK_ToVoid:
case clang::CK_LValueToRValue:
m_childRefKind = REFERENCE_USAGE;
default:
break;
}
}
@@ -377,7 +377,7 @@ void CxxAstVisitorComponentIndexer::visitTypeLoc(clang::TypeLoc tl)
if ((shouldVisitReference(tl.getBeginLoc(), getAstVisitor()->getComponent<CxxAstVisitorComponentContext>()->getTopmostContextDecl())) &&
(!getAstVisitor()->checkIgnoresTypeLoc(tl)))
{
if (const clang::BuiltinType* builtinType = clang::dyn_cast_or_null<clang::BuiltinType>(tl.getTypePtr()))
if (clang::dyn_cast_or_null<clang::BuiltinType>(tl.getTypePtr()))
{
m_client->recordSymbol(getAstVisitor()->getTypeNameCache()->getValue(tl.getTypePtr()), SYMBOL_BUILTIN_TYPE, ACCESS_NONE, DEFINITION_EXPLICIT);
}
@@ -8,6 +8,7 @@
#include "utility/file/FileSystem.h"
#include "utility/UserPaths.h"
#include "utility/utilityApp.h"
#include "platform_includes/deploy.h"
@@ -19,7 +20,15 @@ void setupApp(int argc, char *argv[])
{
#ifdef DEPLOY
std::string path = std::getenv("APPDATA");
path += "/../local/Coati Software/Coati/";
path += "/../local/Coati Software/";
if (utility::getApplicationArchitectureType() == APPLICATION_ARCHITECTURE_X86_64)
{
path += "Coati 64-bit/";
}
else
{
path += "Coati/";
}
UserPaths::setUserDataPath(path);
#else
std::string path = QDir::currentPath().toStdString();
+2 -2
View File
@@ -139,12 +139,12 @@ void QtGraphicsView::updateZoom(float delta)
void QtGraphicsView::refreshStyle()
{
m_zoomInButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath() + "graph_view/images/zoomin.png",
ResourcePaths::getGuiPath() + "graph_view/images/zoom_in.png",
"search/button"
));
m_zoomOutButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath() + "graph_view/images/zoomout.png",
ResourcePaths::getGuiPath() + "graph_view/images/zoom_out.png",
"search/button"
));
}
@@ -116,7 +116,7 @@ void QtProjectWizzardContentPreferences::populate(QGridLayout* layout, int& row)
#ifdef _WIN32
QString filter = "JVM Library (jvm.dll)";
#elif __APPLE__
QString filter = "JVM Library (libjvm.dylib)";
QString filter = "JLI or JVM Library (libjli.dylib libjvm.dylib)";
#else
QString filter = "JVM Library (libjvm.so)";
#endif
@@ -128,7 +128,7 @@ void QtProjectWizzardContentPreferences::populate(QGridLayout* layout, int& row)
}
else if (QSysInfo::macVersion() != QSysInfo::MV_None)
{
m_javaPath->setPlaceholderText("<jre_path>Contents/Home/jre/lib/server/libjvm.dylib");
m_javaPath->setPlaceholderText("<jre_path>/Contents/Home/jre/lib/jli/libjli.dylib");
}
else
{
@@ -21,6 +21,16 @@ std::vector<FilePath> JavaPathDetectorMac::getPaths() const
std::string output = utility::executeProcess(command.c_str());
if (output.size())
{
javaPath = FilePath(utility::trim(output) + "/jre/lib/jli/libjli.dylib");
}
if (!javaPath.exists())
{
javaPath = FilePath("/usr/lib/libjli.dylib");
}
if (!javaPath.exists() && output.size())
{
javaPath = FilePath(utility::trim(output) + "/jre/lib/server/libjvm.dylib");
}
@@ -3,6 +3,8 @@
#include <QSettings>
#include <QSysInfo>
#include "utility/utilityApp.h"
JavaPathDetectorWindows::JavaPathDetectorWindows(const std::string javaVersion)
: JavaPathDetector("Java " + javaVersion + " for Windows", javaVersion)
{
@@ -16,7 +18,10 @@ std::vector<FilePath> JavaPathDetectorWindows::getPaths() const
{
QString key = "HKEY_LOCAL_MACHINE\\SOFTWARE\\";
key += "Wow6432Node\\"; // we need java 32 bit
if (utility::getApplicationArchitectureType() == APPLICATION_ARCHITECTURE_X86_32)
{
key += "Wow6432Node\\";
}
key += ("JavaSoft\\Java Runtime Environment\\" + m_javaVersion).c_str();
+9 -2
View File
@@ -1,6 +1,7 @@
#include "cxxtest/TestSuite.h"
#include "settings/ApplicationSettings.h"
#include "utility/utilityPathDetection.h"
#include "utility/file/FileRegister.h"
#include "utility/text/TextAccess.h"
#include "utility/utility.h"
@@ -21,6 +22,12 @@ public:
void test_java_parser_can_setup_environment_factory()
{
std::vector<FilePath> javaPaths = utility::getJavaRuntimePathDetector()->getPaths();
if (!javaPaths.empty())
{
ApplicationSettings::getInstance()->setJavaPath(javaPaths[0].str());
}
setupJavaEnvironmentFactory();
// if this one fails, maybe your java_path in the test settings is wrong.
@@ -501,7 +508,7 @@ public:
TS_ASSERT(utility::containsElement<std::string>(
client->calls, "void foo.X.B.bar() -> void foo.X.A.bar() <15:10 15:12>"
));
}
}
void test_java_parser_finds_usage_of_field_with_same_name_as_method_parameter()
{