int compare(const Version &lhs, const Version &rhs) { if (lhs.majorVersion() < rhs.majorVersion()) return -1; if (lhs.majorVersion() > rhs.majorVersion()) return 1; if (lhs.minorVersion() < rhs.minorVersion()) return -1; if (lhs.minorVersion() > rhs.minorVersion()) return 1; if (lhs.patchLevel() < rhs.patchLevel()) return -1; if (lhs.patchLevel() > rhs.patchLevel()) return 1; if (lhs.buildNumber() < rhs.buildNumber()) return -1; if (lhs.buildNumber() > rhs.buildNumber()) return 1; return 0; }
Version printVersionOfContextRequest( const Version & version , const bool forward , const bool core) { if (version < Version(3, 2) && (forward || core)) { print(version, forward, core, Version(), false, false); return Version(); } glfwDefaultWindowHints(); glfwWindowHint(GLFW_VISIBLE, false); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, version.majorVersion()); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, version.minorVersion()); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, forward); if (core) glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); GLFWwindow * window = glfwCreateWindow(320, 240, "", nullptr, nullptr); if (!window) { print(version, forward, core, Version(), false, false); return Version(); } glfwMakeContextCurrent(window); glbinding::initialize(glfwGetProcAddress, true); auto result = aux::ContextInfo::version(); glfwMakeContextCurrent(window); print(version, forward, core, result, forward, isCore(result)); glfwMakeContextCurrent(nullptr); glfwDestroyWindow(window); return result; }
QString TestTools::setupSettingsDir1() { QTemporaryDir * const baseDir = new QTemporaryDir; m_tmpDirs << baseDir; const Version thisVersion = Version::fromString(QBS_VERSION); Version predecessor; if (thisVersion.patchLevel() > 0) { predecessor.setMajorVersion(thisVersion.majorVersion()); predecessor.setMinorVersion(thisVersion.minorVersion()); predecessor.setPatchLevel(thisVersion.patchLevel() - 1); } else if (thisVersion.minorVersion() > 0) { predecessor.setMajorVersion(thisVersion.majorVersion()); predecessor.setMinorVersion(thisVersion.minorVersion() - 1); predecessor.setPatchLevel(99); } else { predecessor.setMajorVersion(thisVersion.majorVersion() - 1); predecessor.setMajorVersion(99); predecessor.setPatchLevel(99); } const auto versions = QList<Version>() << Version(0, 1, 0) << Version(1, 0, 5) << predecessor << Version(thisVersion.majorVersion() + 1, thisVersion.minorVersion(), thisVersion.patchLevel()) << Version(thisVersion.majorVersion(), thisVersion.minorVersion() + 1, thisVersion.patchLevel()) << Version(thisVersion.majorVersion(), thisVersion.minorVersion(), thisVersion.patchLevel() + 1) << Version(99, 99, 99); foreach (const Version &v, versions) { const QString settingsDir = baseDir->path() + "/qbs/" + v.toString(); QSettings s(settingsDir + "/qbs.conf", HostOsInfo::isWindowsHost() ? QSettings::IniFormat : QSettings::NativeFormat); const QString profilesDir = settingsDir + "/profiles"; QDir::root().mkpath(profilesDir); const QString magicString = v == predecessor ? "right" : "wrong"; QFile f(profilesDir + '/' + magicString + ".txt"); f.open(QIODevice::WriteOnly); s.setValue("org/qt-project/qbs/key", profilesDir + magicString); } return baseDir->path(); }