[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdevelop
From: Aleix Pol Gonzalez <aleixpol () gmail ! com>
Date: 2009-07-27 1:51:37
Message-ID: 1248659497.566126.20501.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1002810 by apol:
Properly pick the correct root directory when working with subprojects.
M +1 -1 projectbuilders/cmakebuilder/cmakejob.cpp
M +8 -7 projectmanagers/cmake/cmakemanager.cpp
M +0 -1 projectmanagers/cmake/cmakemanager.h
M +8 -0 projectmanagers/cmake/cmakeutils.cpp
M +5 -0 projectmanagers/cmake/cmakeutils.h
--- trunk/KDE/kdevelop/projectbuilders/cmakebuilder/cmakejob.cpp #1002809:1002810
@@ -153,7 +153,7 @@
KConfigGroup group(cfg.data(), "CMake");
args << QString("-DCMAKE_INSTALL_PREFIX=%1").arg(CMake::currentInstallDir(project).toLocalFile());
args << QString("-DCMAKE_BUILD_TYPE=%1").arg(CMake::currentBuildType(project));
- args << project->folder().toLocalFile();
+ args << CMake::projectRoot(project).toLocalFile();
}
return args;
}
--- trunk/KDE/kdevelop/projectmanagers/cmake/cmakemanager.cpp #1002809:1002810
@@ -180,7 +180,9 @@
return path;
}
- KUrl projectPath = m_realRoot[item->project()];
+ //Can't get it from item->project()->projectItem()->url() because
+ //it might not be created yet.
+ KUrl projectPath = CMake::projectRoot(item->project());
QString relative=KUrl::relativeUrl( projectPath, fi->url() );
path.addPath(relative);
path.cleanPath();
@@ -303,7 +305,6 @@
}
}
- m_realRoot[project] = folderUrl;
m_watchers[project] = new KDirWatch(project);
m_rootItem = new CMakeFolderItem(project, folderUrl.url(), 0 );
m_rootItem->setProjectRoot(true);
@@ -368,14 +369,14 @@
KDevelop::ReferencedTopDUContext curr;
if(item->parent()==0)
- curr=initializeProject(item->project(), \
m_realRoot[item->project()]); + \
curr=initializeProject(item->project(), item->project()->projectItem()->url()); else
curr=dynamic_cast<CMakeFolderItem*>(folder->parent())->topDUContext();
kDebug(9042) << "Adding cmake: " << cmakeListsPath << " to the model";
m_watchers[item->project()]->addFile(cmakeListsPath.toLocalFile());
- QString \
binDir=KUrl::relativePath(m_realRoot[folder->project()].toLocalFile(), \
folder->url().toLocalFile()); + QString \
binDir=KUrl::relativePath(folder->project()->projectItem()->url().toLocalFile(), \
folder->url().toLocalFile()); if(binDir.startsWith("./"))
binDir=binDir.remove(0, 2);
@@ -600,7 +601,7 @@
QList<KDevelop::ProjectTargetItem*> CMakeManager::targets() const
{
QList<KDevelop::ProjectTargetItem*> ret;
- foreach(IProject* p, m_realRoot.keys())
+ foreach(IProject* p, m_watchers.keys())
{
ret+=p->projectItem()->targetList();
}
@@ -664,7 +665,7 @@
return;
}
- QString currentBinDir=KUrl::relativeUrl(m_realRoot[project], url);
+ QString currentBinDir=KUrl::relativeUrl(project->projectItem()->url(), url);
vm->insert("CMAKE_CURRENT_BINARY_DIR", \
QStringList(vm->value("CMAKE_BINARY_DIR")[0]+currentBinDir));
vm->insert("CMAKE_CURRENT_LIST_FILE", \
QStringList(cmakeListsPath.toLocalFile(KUrl::RemoveTrailingSlash)));
vm->insert("CMAKE_CURRENT_SOURCE_DIR", \
QStringList(url.toLocalFile(KUrl::RemoveTrailingSlash))); @@ -722,7 +723,7 @@
CMakeFolderItem *it=static_cast<CMakeFolderItem*>(files.first()->parent());
KDevelop::IProject* proj=it->project();
- KUrl projectBaseUrl=m_realRoot[proj];
+ KUrl projectBaseUrl=proj->projectItem()->url();
projectBaseUrl.adjustPath(KUrl::AddTrailingSlash);
kDebug(9032) << "reload:" << dir << projectBaseUrl << (dir!=projectBaseUrl);
--- trunk/KDE/kdevelop/projectmanagers/cmake/cmakemanager.h #1002809:1002810
@@ -137,7 +137,6 @@
QMap<KDevelop::IProject*, MacroMap> m_macrosPerProject;
QMap<KDevelop::IProject*, KDirWatch*> m_watchers;
QMap<KDevelop::IProject*, CacheValues> m_projectCache;
- QMap<KDevelop::IProject*, KUrl> m_realRoot;
CMakeDocumentation* m_doc;
ICMakeBuilder* m_builder;
--- trunk/KDE/kdevelop/projectmanagers/cmake/cmakeutils.cpp #1002809:1002810
@@ -104,6 +104,14 @@
return false;
}
+KUrl projectRoot(KDevelop::IProject* project)
+{
+ KUrl projectPath = project->folder();
+ bool correct=projectPath.cd(CMake::projectRootRelative(project));
+ Q_ASSERT(correct);
+ return projectPath;
+}
+
KUrl currentBuildDir( KDevelop::IProject* project )
{
KConfigGroup cmakeGrp = project->projectConfiguration()->group("CMake");
--- trunk/KDE/kdevelop/projectmanagers/cmake/cmakeutils.h #1002809:1002810
@@ -69,6 +69,11 @@
* Sets the current build dir for the given project.
*/
KDEVCMAKECOMMON_EXPORT QString projectRootRelative( KDevelop::IProject* project \
); +
+ /**
+ * Convenience function to get the project root.
+ */
+ KDEVCMAKECOMMON_EXPORT KUrl projectRoot( KDevelop::IProject* project );
/**
* Sets the current install dir for the given project.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic