ui: added initial auto-detection for cpp standard headers and java runtime library
* when Coati is started with no java-path or global cxx header or framework paths in the appsettings they are auto-detected using the first working detector * order in which the detectors are shown in gui now matches the order they are added to the combined detector.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#include "utility/utilityPathDetection.h"
|
||||
|
||||
#include <QSysInfo>
|
||||
|
||||
#include "utility/path_detector/java_runtime/JavaPathDetectorLinux.h"
|
||||
#include "utility/path_detector/java_runtime/JavaPathDetectorMac.h"
|
||||
#include "utility/path_detector/java_runtime/JavaPathDetectorWindows.h"
|
||||
|
||||
#include "utility/path_detector/cxx_header/CxxFrameworkPathDetector.h"
|
||||
#include "utility/path_detector/cxx_header/CxxHeaderPathDetector.h"
|
||||
#include "utility/path_detector/cxx_header/CxxVsHeaderPathDetector.h"
|
||||
|
||||
std::shared_ptr<CombinedPathDetector> utility::getJavaRuntimePathDetector()
|
||||
{
|
||||
std::shared_ptr<CombinedPathDetector> combinedDetector = std::make_shared<CombinedPathDetector>();
|
||||
if (QSysInfo::windowsVersion() != QSysInfo::WV_None)
|
||||
{
|
||||
combinedDetector->addDetector(std::make_shared<JavaPathDetectorWindows>("1.8"));
|
||||
}
|
||||
else if (QSysInfo::macVersion() != QSysInfo::MV_None)
|
||||
{
|
||||
combinedDetector->addDetector(std::make_shared<JavaPathDetectorMac>("1.8"));
|
||||
}
|
||||
else
|
||||
{
|
||||
combinedDetector->addDetector(std::make_shared<JavaPathDetectorLinux>("1.8"));
|
||||
}
|
||||
|
||||
return combinedDetector;
|
||||
}
|
||||
|
||||
std::shared_ptr<CombinedPathDetector> utility::getCxxHeaderPathDetector()
|
||||
{
|
||||
std::shared_ptr<CombinedPathDetector> combinedDetector = std::make_shared<CombinedPathDetector>();
|
||||
combinedDetector->addDetector(std::make_shared<CxxHeaderPathDetector>("gcc"));
|
||||
combinedDetector->addDetector(std::make_shared<CxxHeaderPathDetector>("clang"));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(14, false));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(14, true));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(12, false));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(12, true));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(11, false));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(11, true));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(9, false));
|
||||
combinedDetector->addDetector(std::make_shared<CxxVsHeaderPathDetector>(9, true));
|
||||
return combinedDetector;
|
||||
}
|
||||
|
||||
std::shared_ptr<CombinedPathDetector> utility::getCxxFrameworkPathDetector()
|
||||
{
|
||||
std::shared_ptr<CombinedPathDetector> combinedDetector = std::make_shared<CombinedPathDetector>();
|
||||
combinedDetector->addDetector(std::make_shared<CxxFrameworkPathDetector>("gcc"));
|
||||
combinedDetector->addDetector(std::make_shared<CxxFrameworkPathDetector>("clang"));
|
||||
return combinedDetector;
|
||||
}
|
||||
Reference in New Issue
Block a user