# 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) {