42 import org.eclipse.core.runtime.IStatus; |
42 import org.eclipse.core.runtime.IStatus; |
43 import org.eclipse.core.runtime.NullProgressMonitor; |
43 import org.eclipse.core.runtime.NullProgressMonitor; |
44 import org.eclipse.core.runtime.Path; |
44 import org.eclipse.core.runtime.Path; |
45 import org.eclipse.core.runtime.Status; |
45 import org.eclipse.core.runtime.Status; |
46 import org.eclipse.core.runtime.SubMonitor; |
46 import org.eclipse.core.runtime.SubMonitor; |
|
47 import org.eclipse.jface.dialogs.MessageDialog; |
47 import org.eclipse.jface.window.Window; |
48 import org.eclipse.jface.window.Window; |
48 import org.eclipse.swt.widgets.Display; |
49 import org.eclipse.swt.widgets.Display; |
49 |
50 |
50 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; |
51 import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; |
51 import com.nokia.carbide.cdt.builder.DefaultMMPViewConfiguration; |
52 import com.nokia.carbide.cdt.builder.DefaultMMPViewConfiguration; |
61 import com.nokia.carbide.cdt.internal.builder.CarbideSBSv1Builder; |
62 import com.nokia.carbide.cdt.internal.builder.CarbideSBSv1Builder; |
62 import com.nokia.carbide.cdt.internal.builder.CarbideSBSv2Builder; |
63 import com.nokia.carbide.cdt.internal.builder.CarbideSBSv2Builder; |
63 import com.nokia.carbide.cdt.internal.builder.ICarbideBuilder; |
64 import com.nokia.carbide.cdt.internal.builder.ICarbideBuilder; |
64 import com.nokia.carbide.cdt.internal.builder.ui.BuilderPreferencePage; |
65 import com.nokia.carbide.cdt.internal.builder.ui.BuilderPreferencePage; |
65 import com.nokia.carbide.cdt.internal.builder.ui.MMPSelectionDialog; |
66 import com.nokia.carbide.cdt.internal.builder.ui.MMPSelectionDialog; |
|
67 import com.nokia.carbide.cdt.internal.builder.ui.Messages; |
66 import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin; |
68 import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin; |
67 import com.nokia.carbide.cpp.epoc.engine.MMPDataRunnableAdapter; |
69 import com.nokia.carbide.cpp.epoc.engine.MMPDataRunnableAdapter; |
68 import com.nokia.carbide.cpp.epoc.engine.PKGViewRunnableAdapter; |
70 import com.nokia.carbide.cpp.epoc.engine.PKGViewRunnableAdapter; |
69 import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IExtension; |
71 import com.nokia.carbide.cpp.epoc.engine.model.bldinf.IExtension; |
70 import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPLanguage; |
72 import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPLanguage; |
71 import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPStatement; |
73 import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPStatement; |
72 import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPData; |
74 import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPData; |
73 import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPResource; |
75 import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPResource; |
74 import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter; |
76 import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter; |
|
77 import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin; |
75 import com.nokia.carbide.cpp.internal.x86build.X86BuildPlugin; |
78 import com.nokia.carbide.cpp.internal.x86build.X86BuildPlugin; |
76 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; |
79 import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; |
77 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.EPKGLanguage; |
80 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.EPKGLanguage; |
78 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGEmbeddedSISFile; |
81 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGEmbeddedSISFile; |
79 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGHeader; |
82 import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGHeader; |
1208 } |
1211 } |
1209 |
1212 |
1210 monitor.done(); |
1213 monitor.done(); |
1211 } |
1214 } |
1212 |
1215 |
1213 private static void buildSisFile(ISISBuilderInfo sisInfo, ICarbideBuildConfiguration config, CarbideCommandLauncher cmdLauncher, IProgressMonitor monitor, boolean createOutputFromPKGFileName) { |
1216 private static void buildSisFile(final ISISBuilderInfo sisInfo, final ICarbideBuildConfiguration config, CarbideCommandLauncher cmdLauncher, IProgressMonitor monitor, boolean createOutputFromPKGFileName) { |
1214 IPath pkgPath = sisInfo.getPKGFullPath(); |
1217 IPath pkgPath = sisInfo.getPKGFullPath(); |
1215 if (pkgPath == null) { |
1218 if (pkgPath == null) { |
1216 cmdLauncher.writeToConsole("PKG file does not exist. Skipping..."); |
1219 cmdLauncher.writeToConsole("PKG file does not exist. Skipping..."); |
1217 return; |
1220 return; |
1218 } else if (!pkgPath.toFile().exists()) { |
1221 } else if (!pkgPath.toFile().exists()) { |
1219 cmdLauncher.writeToConsole("PKG file" + pkgPath.toOSString() + " does not exist. Skipping..."); |
1222 |
1220 return; |
1223 try { |
|
1224 // Check to see if this is a Qt project and if the template format could have changed. |
|
1225 IProject project = config.getCarbideProject().getProject(); |
|
1226 if (project != null && project.hasNature(QtCorePlugin.QT_PROJECT_NATURE_ID)){ |
|
1227 final String currentPKGName = pkgPath.lastSegment(); |
|
1228 pkgPath = pkgPath.removeLastSegments(1).append(project.getName() + "_template.pkg" ); //$NON-NLS-N$ |
|
1229 if (pkgPath.toFile().exists()){ |
|
1230 |
|
1231 final IPath finalPkgPath = pkgPath; |
|
1232 Display.getDefault().syncExec(new Runnable() { |
|
1233 public void run() { |
|
1234 if (true == MessageDialog.openQuestion(WorkbenchUtils.getSafeShell(), "Can not find PKG file for SIS builder", "The file \"" + currentPKGName + "\" does not exist for this Qt project. The suggested file is \"" + finalPkgPath.lastSegment() + "\".\n\nDo you want to update your build configuration to use this PKG file?")) { //$NON-NLS-1$ //$NON-NLS-2$ |
|
1235 IWorkspace workspace= ResourcesPlugin.getWorkspace(); |
|
1236 IFile ifile= workspace.getRoot().getFileForLocation(finalPkgPath); |
|
1237 sisInfo.setPKGFile(ifile.getLocation().toOSString()); |
|
1238 config.getSISBuilderInfoList().remove(sisInfo); |
|
1239 config.getSISBuilderInfoList().add(sisInfo); |
|
1240 config.saveConfiguration(false); |
|
1241 } |
|
1242 } |
|
1243 }); |
|
1244 } |
|
1245 } |
|
1246 } catch (CoreException e) { |
|
1247 e.printStackTrace(); |
|
1248 } |
|
1249 |
|
1250 if (!sisInfo.getPKGFullPath().toFile().exists()){ |
|
1251 cmdLauncher.writeToConsole("PKG file " + pkgPath.toOSString() + " does not exist. Skipping..."); //$NON-NLS-N$ |
|
1252 return; |
|
1253 } |
1221 } |
1254 } |
1222 |
1255 |
1223 // see if we need to rebuild the sis file |
1256 // see if we need to rebuild the sis file |
1224 boolean shouldBuild = false; |
1257 boolean shouldBuild = false; |
1225 |
1258 |