# HG changeset patch # User timkelly # Date 1267066865 21600 # Node ID 5807922922c66974d69f69da74cf44ebcef5b5d3 # Parent 83255eb26cdb2f7ec2d2c0d9df2bc3ef205d527c Add support for qmake command provider extension. sets -spec when projects are created and when qmake is invoked on a .pro file diff -r 83255eb26cdb -r 5807922922c6 qt/com.nokia.carbide.cpp.qt.ui/plugin.xml --- a/qt/com.nokia.carbide.cpp.qt.ui/plugin.xml Tue Feb 23 14:39:53 2010 -0600 +++ b/qt/com.nokia.carbide.cpp.qt.ui/plugin.xml Wed Feb 24 21:01:05 2010 -0600 @@ -88,7 +88,16 @@ - + + + + diff -r 83255eb26cdb -r 5807922922c6 qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/CarbideQmakeCommandProvider.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/CarbideQmakeCommandProvider.java Wed Feb 24 21:01:05 2010 -0600 @@ -0,0 +1,50 @@ +package com.nokia.carbide.cpp.internal.qt.ui; + +import java.util.List; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; + +import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; +import com.trolltech.qtcppproject.qmake.IQtQmakeCommandProvider; + +public class CarbideQmakeCommandProvider implements IQtQmakeCommandProvider { + + public static final String SYMBIAN_ABLD_SPEC = "symbian-abld"; + public static final String SYMBIAN_SBSV2_SPEC = "symbian-sbsv2"; + + public List getAdditionalArgs(IProject project) { + + // Do nothing.... + return null; + } + + public String getProviderMkspec(IProject project) { + if (CarbideBuilderPlugin.getBuildManager().isCarbideSBSv2Project(project)){ + return SYMBIAN_SBSV2_SPEC; + } else if (CarbideBuilderPlugin.getBuildManager().isCarbideProject(project)) { + return SYMBIAN_ABLD_SPEC; + } + + // Project may just be being created so check the project session properties + boolean sbsv2Project = false; + Object property = null; + try { + property = project.getSessionProperty(CarbideBuilderPlugin.SBSV2_PROJECT); + //project.setSessionProperty(key, value) + } catch (CoreException e) { + e.printStackTrace(); + } + if (property != null && property instanceof Boolean) { + sbsv2Project = ((Boolean)property).booleanValue(); + } + + if (sbsv2Project){ + return SYMBIAN_SBSV2_SPEC; + } else { + return SYMBIAN_ABLD_SPEC; + } + + } + +} diff -r 83255eb26cdb -r 5807922922c6 qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/processes/ProjectCreatedTasksQt.java --- a/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/processes/ProjectCreatedTasksQt.java Tue Feb 23 14:39:53 2010 -0600 +++ b/qt/com.nokia.carbide.cpp.qt.ui/src/com/nokia/carbide/cpp/internal/qt/ui/processes/ProjectCreatedTasksQt.java Wed Feb 24 21:01:05 2010 -0600 @@ -31,6 +31,7 @@ import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; +import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin; import com.nokia.carbide.cpp.internal.qt.core.QtSDKUtils; import com.nokia.carbide.cpp.internal.qt.ui.QtUIPlugin; @@ -60,7 +61,7 @@ if (project != null) { // add qt nature here QtCorePlugin.addQtNature(project, monitor); - + // enable the pro file listener by default new QtProject(project).setRunQMakeWhenProFileChanges(true); @@ -83,6 +84,9 @@ Map envMods = new HashMap(); envMods.put("EPOCROOT", epocroot.setDevice(null).toOSString()); + // Make sure we set the session property so when qmake is called we know the proper -spec to invoke + project.setSessionProperty(CarbideBuilderPlugin.SBSV2_PROJECT, Boolean.valueOf(useSBSv2Builder)); + // run qmake to ensure bld.inf file exists String errMsg = QMakeRunner.runQMake(project, envMods, monitor); if (errMsg != null) {