void Test::TestFindRailsRoot() { KDevelop::Path path; // Empty URL. path = Helpers::findRailsRoot(QUrl("")); Q_ASSERT(!path.isValid()); // App. path = Helpers::findRailsRoot(QUrl("/rails/app/controllers/file.rb")); Q_ASSERT(path.isValid()); QCOMPARE(path.toLocalFile(), QString("/rails")); path = Helpers::findRailsRoot(QUrl("/rails/app/models/file.rb")); Q_ASSERT(path.isValid()); QCOMPARE(path.toLocalFile(), QString("/rails")); path = Helpers::findRailsRoot(QUrl("/rails/app/views/file.rb")); Q_ASSERT(path.isValid()); QCOMPARE(path.toLocalFile(), QString("/rails")); // Tests. path = Helpers::findRailsRoot(QUrl("/rails/test/file.rb")); Q_ASSERT(path.isValid()); QCOMPARE(path.toLocalFile(), QString("/rails")); path = Helpers::findRailsRoot(QUrl("/rails/dir/test/file.rb")); Q_ASSERT(path.isValid()); QCOMPARE(path.toLocalFile(), QString("/rails/dir")); // Invalids path = Helpers::findRailsRoot(QUrl("/rails/app/test/file.rb")); Q_ASSERT(!path.isValid()); path = Helpers::findRailsRoot(QUrl("/rails/app/controllers")); Q_ASSERT(!path.isValid()); }
void updateConfig( KDevelop::IProject* project, int buildDirIndex) { if (buildDirIndex < 0) return; KConfigGroup buildDirGrp = buildDirGroup( project, buildDirIndex ); const KDevelop::Path builddir(buildDirGrp.readEntry( Config::Specific::buildDirPathKey, QString() )); const KDevelop::Path cacheFilePath( builddir, QStringLiteral("CMakeCache.txt")); QFile file(cacheFilePath.toLocalFile()); const QMap<QString, QString> keys = { { Config::Specific::cmakeBinKey, QStringLiteral("CMAKE_COMMAND") }, { Config::Specific::cmakeInstallDirKey, QStringLiteral("CMAKE_INSTALL_PREFIX") }, { Config::Specific::cmakeBuildTypeKey, QStringLiteral("CMAKE_BUILD_TYPE") } }; if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine().trimmed(); if(!line.isEmpty() && !line[0].isLetterOrNumber()) { CacheLine c; c.readLine(line); if(c.isCorrect()) { QString key = keys.value(c.name()); if (!key.isEmpty()) { buildDirGrp.writeEntry( key, c.value() ); } } } } } else qCWarning(CMAKE) << "error. Could not find the file" << cacheFilePath; }
void setCurrentBuildDir( KDevelop::IProject* project, const KDevelop::Path& path ) { writeProjectParameter( project, Config::Specific::buildDirPathKey, path.toLocalFile() ); }
void setCurrentCMakeBinary( KDevelop::IProject* project, const KDevelop::Path& path ) { writeProjectParameter( project, Config::Specific::cmakeBinKey, path.toLocalFile() ); }
void setCurrentInstallDir( KDevelop::IProject* project, const KDevelop::Path& path ) { writeProjectParameter( project, Config::Specific::cmakeInstallDirKey, path.toLocalFile() ); }