Hi Jessica,<div><br></div><div>My idea was that the YoctoSDKAutotoolsProjectNature and the YoctoSDKProjectNature are related through the "requires-nature" tag in plugin.xml. The YoctoSDKAutotoolsProjectNature has also an another "requires-nature" relation to the org.eclipse.cdt.autotools.core.autotoolsNatureV2. If I make the YoctoSDKAutotoolsProjectNature a subclass of the YoctoSDKProjectNature it would suggest (according to my mind) a stronger connection to the YoctoSDKProjectNature than to the org.eclipse.cdt.autotools.core.autotoolsNatureV2. It would be like YoctoSDKAutotoolsProjectNature "requires more" YoctoSDKProjectNature than org.eclipse.cdt.autotools.core.autotoolsNatureV2...I am not sure if it is a problem or not. So, I can make the YoctoSDKAutotoolsProjectNature a subclass of the YoctoSDKProjectNature if you think that it is a better design.</div>
<div><br>What do you mean by "In this way, you don't need to introduce the special method of addYoctoSDKAutotoolsNature in YoctoSDKAutotoolsProjectNature which makes the interface a little bit cleaner via encapsulation"? In order to add the two natures to the project I think we need both static methods:<br>
- YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);</div><div>- YoctoSDKAutotoolsProjectNature.addYoctoSDKAutotoolsNature(project, monitor);</div><div>Or do you mean some other solution?</div><div><br>Looking forward to your feedback!<br>
<br>Best regards,<br>Atanas<br><br><div class="gmail_quote">On Mon, Apr 15, 2013 at 9:12 PM, Zhang, Jessica <span dir="ltr"><<a href="mailto:jessica.zhang@intel.com" target="_blank">jessica.zhang@intel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Atanas,<br>
<br>
Everything looks good for the patch series except can we make YoctoSDKAutotoolsProjectNature subclass of YoctoSDKProjectNature by extending it to better show the classes relationship. In this way, you don't need to introduce the special method of addYoctoSDKAutotoolsNature in YoctoSDKAutotoolsProjectNature which makes the interface a little bit cleaner via encapsulation.<br>
<br>
Thanks,<br>
Jessica<br>
<div><div class="h5"><br>
-----Original Message-----<br>
From: <a href="mailto:yocto-bounces@yoctoproject.org">yocto-bounces@yoctoproject.org</a> [mailto:<a href="mailto:yocto-bounces@yoctoproject.org">yocto-bounces@yoctoproject.org</a>] On Behalf Of Atanas Gegov<br>
Sent: Thursday, April 11, 2013 4:25 AM<br>
To: <a href="mailto:yocto@yoctoproject.org">yocto@yoctoproject.org</a><br>
Subject: [yocto] [PATCHv2 4/9] plugins/sdk.ide: Switch to YoctoSDKAutotoolsProjectNature<br>
<br>
From: Atanas Gegov <<a href="mailto:atanas.gegov@bmw-carit.de">atanas.gegov@bmw-carit.de</a>><br>
<br>
The YoctoSDKProjectNature remains the basic nature for all Yocto projects in the IDE. The projects using Autotools (all templates) get the YoctoSDKProjectNature and additionally the YoctoSDKAutotoolsProjectNature. The process NewYoctoCProjectTemplate is adapted accordingly.<br>
---<br>
plugins/org.yocto.sdk.ide/plugin.xml | 2 +-<br>
.../natures/YoctoSDKAutotoolsProjectNature.java | 45 +++++++++++<br>
.../sdk/ide/natures/YoctoSDKProjectNature.java | 70 -----------------<br>
.../src/org/yocto/sdk/ide/utils/YoctoSDKUtils.java | 6 +-<br>
.../sdk/ide/wizard/NewYoctoCProjectTemplate.java | 79 ++++++++++++--------<br>
5 files changed, 96 insertions(+), 106 deletions(-)<br>
<br>
diff --git a/plugins/org.yocto.sdk.ide/plugin.xml b/plugins/org.yocto.sdk.ide/plugin.xml<br>
index f21434b..35e34b4 100644<br>
--- a/plugins/org.yocto.sdk.ide/plugin.xml<br>
+++ b/plugins/org.yocto.sdk.ide/plugin.xml<br>
@@ -91,7 +91,7 @@<br>
type="org.eclipse.core.resources.IResource"><br>
<test<br>
property="org.eclipse.core.resources.projectNature"<br>
- value="org.yocto.sdk.ide.YoctoSDKNature"><br>
+<br>
+ value="org.yocto.sdk.ide.YoctoSDKAutotoolsNature"><br>
</test><br>
</adapt><br>
</iterate><br>
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java<br>
index ac73878..767c005 100644<br>
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAutotoolsProjectNature.java<br>
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKAu<br>
</div></div>+++ totoolsProjectNature.java<br>
<div class="im">@@ -10,15 +10,31 @@<br>
*******************************************************************************/<br>
package org.yocto.sdk.ide.natures;<br>
<br>
+import<br>
</div>+org.eclipse.cdt.internal.autotools.core.configure.AutotoolsConfiguratio<br>
+nManager; import<br>
+org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration;<br>
<div class="im">+import org.eclipse.cdt.managedbuilder.core.IConfiguration;<br>
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;<br>
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;<br>
import org.eclipse.core.resources.IProject;<br>
import org.eclipse.core.resources.IProjectNature;<br>
import org.eclipse.core.runtime.CoreException;<br>
import org.eclipse.core.runtime.IProgressMonitor;<br>
import org.yocto.sdk.ide.YoctoSDKPlugin;<br>
</div>+import org.yocto.sdk.ide.YoctoUIElement; import<br>
+org.yocto.sdk.ide.utils.YoctoSDKUtils;<br>
<div class="im"><br>
public class YoctoSDKAutotoolsProjectNature implements IProjectNature {<br>
public static final String YoctoSDK_AUTOTOOLS_NATURE_ID = YoctoSDKPlugin.getUniqueIdentifier() + ".YoctoSDKAutotoolsNature";<br>
<br>
+ private static final String DEFAULT_HOST_STR = "host";<br>
+ private static final String DEFAULT_TARGET_STR = "target";<br>
+ private static final String DEFAULT_BUILD_STR = "build";<br>
+ private static final String DEFAULT_AUTOGEN_OPT_STR = "autogenOpts";<br>
+<br>
+ private static final String DEFAULT_CONFIGURE_STR = "configure";<br>
+ private static final String DEFAULT_AUTOGEN_STR = "autogen";<br>
+ private static final String DEFAULT_LIBTOOL_SYSROOT_PREFIX = "<br>
</div>+--with-libtool-sysroot=";<br>
<div class="im">+<br>
private IProject proj;<br>
<br>
public void configure() throws CoreException { @@ -38,4 +54,33 @@ public class YoctoSDKAutotoolsProjectNature implements IProjectNature {<br>
public static void addYoctoSDKAutotoolsNature(IProject project, IProgressMonitor monitor) throws CoreException {<br>
YoctoSDKNatureUtils.addNature(project, YoctoSDK_AUTOTOOLS_NATURE_ID, monitor);<br>
}<br>
+<br>
+ public static void configureAutotoolsOptions(IProject project) {<br>
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);<br>
+ IConfiguration icfg = info.getDefaultConfiguration();<br>
+ YoctoUIElement elem = YoctoSDKUtils.getElemFromProjectEnv(project);<br>
+ String sysroot_str = elem.getStrSysrootLoc();<br>
+ String id = icfg.getId();<br>
+ String CFLAGS_str = YoctoSDKUtils.getEnvValue(project, "CFLAGS");<br>
+ String CXXFLAGS_str = YoctoSDKUtils.getEnvValue(project, "CXXFLAGS");<br>
+ String CPPFLAGS_str = YoctoSDKUtils.getEnvValue(project, "CPPFLAGS");<br>
+ String LDFLAGS_str = YoctoSDKUtils.getEnvValue(project, "LDFLAGS");<br>
+<br>
+ String command_prefix = "CFLAGS=\" -g -O0 " + CFLAGS_str + "\" CXXFLAGS=\" -g -O0 "<br>
+ + CXXFLAGS_str + "\" LDFLAGS=\"" + LDFLAGS_str + "\" CPPFLAGS=\"" + CPPFLAGS_str + "\"";<br>
+ String autogen_setting = command_prefix+" autogen.sh" + DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;<br>
+ String configure_setting = command_prefix + " configure" + DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;<br>
+ IAConfiguration cfg = AutotoolsConfigurationManager.getInstance().getConfiguration(project, id);<br>
+ String strConfigure = YoctoSDKUtils.getEnvValue(project,<br>
</div>+"CONFIGURE_FLAGS");<br>
<div class="im">+<br>
+ cfg.setOption(DEFAULT_CONFIGURE_STR, configure_setting);<br>
+ cfg.setOption(DEFAULT_BUILD_STR, YoctoSDKUtils.splitString(strConfigure, "--build="));<br>
+ cfg.setOption(DEFAULT_HOST_STR, YoctoSDKUtils.splitString(strConfigure, "--host="));<br>
+ cfg.setOption(DEFAULT_TARGET_STR, YoctoSDKUtils.splitString(strConfigure, "--target="));<br>
+ cfg.setOption(DEFAULT_AUTOGEN_STR, autogen_setting);<br>
+ cfg.setOption(DEFAULT_AUTOGEN_OPT_STR, strConfigure);<br>
+<br>
+ AutotoolsConfigurationManager.getInstance().addConfiguration(project, cfg);<br>
+ AutotoolsConfigurationManager.getInstance().saveConfigs(project);<br>
+ }<br>
}<br>
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKProjectNature.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKProjectNature.java<br>
index fcb296d..51926fb 100644<br>
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKProjectNature.java<br>
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/natures/YoctoSDKPr<br>
</div>+++ ojectNature.java<br>
<div><div class="h5">@@ -10,39 +10,15 @@<br>
*******************************************************************************/<br>
package org.yocto.sdk.ide.natures;<br>
<br>
-import org.eclipse.cdt.internal.autotools.core.configure.AutotoolsConfigurationManager;<br>
-import org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration;<br>
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;<br>
-import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;<br>
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;<br>
import org.eclipse.core.resources.IProject;<br>
import org.eclipse.core.resources.IProjectNature;<br>
import org.eclipse.core.runtime.CoreException;<br>
import org.eclipse.core.runtime.IProgressMonitor;<br>
-import org.eclipse.jface.preference.IPreferenceStore;<br>
-import org.yocto.sdk.ide.YoctoGeneralException;<br>
-import org.yocto.sdk.ide.YoctoProfileElement;<br>
-import org.yocto.sdk.ide.YoctoSDKChecker;<br>
import org.yocto.sdk.ide.YoctoSDKPlugin; -import org.yocto.sdk.ide.YoctoUIElement; -import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckRequestFrom;<br>
-import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckResults;<br>
-import org.yocto.sdk.ide.utils.YoctoSDKUtils;<br>
<br>
-<br>
-@SuppressWarnings("restriction")<br>
public class YoctoSDKProjectNature implements IProjectNature {<br>
public static final String YoctoSDK_NATURE_ID = YoctoSDKPlugin.getUniqueIdentifier() + ".YoctoSDKNature";<br>
<br>
- private static final String DEFAULT_HOST_STR = "host";<br>
- private static final String DEFAULT_TARGET_STR = "target";<br>
- private static final String DEFAULT_BUILD_STR = "build";<br>
- private static final String DEFAULT_AUTOGEN_OPT_STR = "autogenOpts";<br>
-<br>
- private static final String DEFAULT_CONFIGURE_STR = "configure";<br>
- private static final String DEFAULT_AUTOGEN_STR = "autogen";<br>
- private static final String DEFAULT_LIBTOOL_SYSROOT_PREFIX = " --with-libtool-sysroot=";<br>
-<br>
private IProject proj;<br>
<br>
public void configure() throws CoreException { @@ -62,50 +38,4 @@ public class YoctoSDKProjectNature implements IProjectNature {<br>
public static void addYoctoSDKNature(IProject project, IProgressMonitor monitor) throws CoreException {<br>
YoctoSDKNatureUtils.addNature(project, YoctoSDK_NATURE_ID, monitor);<br>
}<br>
-<br>
- public static void configureAutotoolsOptions(IProject project) {<br>
- IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);<br>
- IConfiguration icfg = info.getDefaultConfiguration();<br>
- YoctoUIElement elem = YoctoSDKUtils.getElemFromProjectEnv(project);<br>
- String sysroot_str = elem.getStrSysrootLoc();<br>
- String id = icfg.getId();<br>
- String CFLAGS_str = YoctoSDKUtils.getEnvValue(project, "CFLAGS");<br>
- String CXXFLAGS_str = YoctoSDKUtils.getEnvValue(project, "CXXFLAGS");<br>
- String CPPFLAGS_str = YoctoSDKUtils.getEnvValue(project, "CPPFLAGS");<br>
- String LDFLAGS_str = YoctoSDKUtils.getEnvValue(project, "LDFLAGS");<br>
-<br>
- String command_prefix = "CFLAGS=\" -g -O0 " + CFLAGS_str + "\" CXXFLAGS=\" -g -O0 "<br>
- + CXXFLAGS_str + "\" LDFLAGS=\"" + LDFLAGS_str + "\" CPPFLAGS=\"" + CPPFLAGS_str + "\"";<br>
- String autogen_setting = command_prefix+" autogen.sh" + DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;<br>
- String configure_setting = command_prefix + " configure" + DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;<br>
- IAConfiguration cfg = AutotoolsConfigurationManager.getInstance().getConfiguration(project, id);<br>
- String strConfigure = YoctoSDKUtils.getEnvValue(project, "CONFIGURE_FLAGS");<br>
-<br>
- cfg.setOption(DEFAULT_CONFIGURE_STR, configure_setting);<br>
- cfg.setOption(DEFAULT_BUILD_STR, YoctoSDKUtils.splitString(strConfigure, "--build="));<br>
- cfg.setOption(DEFAULT_HOST_STR, YoctoSDKUtils.splitString(strConfigure, "--host="));<br>
- cfg.setOption(DEFAULT_TARGET_STR, YoctoSDKUtils.splitString(strConfigure, "--target="));<br>
- cfg.setOption(DEFAULT_AUTOGEN_STR, autogen_setting);<br>
- cfg.setOption(DEFAULT_AUTOGEN_OPT_STR, strConfigure);<br>
-<br>
- AutotoolsConfigurationManager.getInstance().addConfiguration(project, cfg);<br>
- AutotoolsConfigurationManager.getInstance().saveConfigs(project);<br>
- }<br>
-<br>
- public static void configureAutotools(IProject project) throws YoctoGeneralException {<br>
- YoctoProfileElement profileElement = YoctoSDKUtils.getProfilesFromDefaultStore();<br>
- YoctoSDKUtils.saveProfilesToProjectPreferences(profileElement, project);<br>
- IPreferenceStore selecteProfileStore = YoctoSDKPlugin.getProfilePreferenceStore(profileElement.getSelectedProfile());<br>
- YoctoUIElement elem = YoctoSDKUtils.getElemFromStore(selecteProfileStore);<br>
- SDKCheckResults result = YoctoSDKChecker.checkYoctoSDK(elem);<br>
- if (result != SDKCheckResults.SDK_PASS){<br>
- String strErrorMsg = YoctoSDKChecker.getErrorMessage(result, SDKCheckRequestFrom.Wizard);<br>
- throw new YoctoGeneralException(strErrorMsg);<br>
- }<br>
- else<br>
- {<br>
- YoctoSDKUtils.setEnvironmentVariables(project, elem);<br>
- configureAutotoolsOptions(project);<br>
- }<br>
- }<br>
}<br>
diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/utils/YoctoSDKUtils.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/utils/YoctoSDKUtils.java<br>
index bd781b3..1e2e424 100644<br>
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/utils/YoctoSDKUtils.java<br>
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/utils/YoctoSDKUtil<br>
</div></div>+++ s.java<br>
<div class="im">@@ -54,8 +54,8 @@ import org.yocto.sdk.ide.YoctoProfileElement;<br>
import org.yocto.sdk.ide.YoctoSDKMessages;<br>
import org.yocto.sdk.ide.YoctoSDKPlugin; import org.yocto.sdk.ide.YoctoUIElement;<br>
+import org.yocto.sdk.ide.natures.YoctoSDKAutotoolsProjectNature;<br>
import org.yocto.sdk.ide.natures.YoctoSDKEmptyProjectNature;<br>
-import org.yocto.sdk.ide.natures.YoctoSDKProjectNature;<br>
import org.yocto.sdk.ide.preferences.PreferenceConstants;<br>
<br>
public class YoctoSDKUtils {<br>
@@ -427,7 +427,9 @@ public class YoctoSDKUtils {<br>
<br>
try {<br>
setEnvironmentVariables(project, elem);<br>
- YoctoSDKProjectNature.configureAutotoolsOptions(project);<br>
+ if(project.hasNature(YoctoSDKAutotoolsProjectNature.YoctoSDK_AUTOTOOLS_NATURE_ID)) {<br>
+ YoctoSDKAutotoolsProjectNature.configureAutotoolsOptions(project);<br>
+ }<br>
IConsole console = CCorePlugin.getDefault().getConsole("org.yocto.sdk.ide.YoctoConsole");<br>
console.start(project);<br>
consoleOutStream = console.getOutputStream(); diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/wizard/NewYoctoCProjectTemplate.java b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/wizard/NewYoctoCProjectTemplate.java<br>
index 73531e5..239cbf8 100644<br>
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/wizard/NewYoctoCProjectTemplate.java<br>
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/wizard/NewYoctoCPr<br>
</div>+++ ojectTemplate.java<br>
<div class="im">@@ -28,6 +28,7 @@ import org.eclipse.cdt.make.core.MakeCorePlugin;<br>
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager;<br>
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;<br>
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerProjectDiscoveredPathInfo;<br>
+import<br>
</div>+org.eclipse.cdt.make.internal.core.scannerconfig.util.SymbolEntry;<br>
<div class="im"> import org.eclipse.cdt.managedbuilder.core.BuildException;<br>
import org.eclipse.cdt.managedbuilder.core.IConfiguration;<br>
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;<br>
@@ -56,6 +57,7 @@ import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckResults;<br>
import org.yocto.sdk.ide.YoctoSDKMessages;<br>
import org.yocto.sdk.ide.YoctoSDKPlugin; import org.yocto.sdk.ide.YoctoUIElement;<br>
+import org.yocto.sdk.ide.natures.YoctoSDKAutotoolsProjectNature;<br>
import org.yocto.sdk.ide.natures.YoctoSDKEmptyProjectNature;<br>
import org.yocto.sdk.ide.natures.YoctoSDKProjectNature;<br>
import org.yocto.sdk.ide.utils.YoctoSDKUtils;<br>
@@ -88,7 +90,7 @@ public class NewYoctoCProjectTemplate extends ProcessRunner {<br>
String isEmptyProjetValue = args[4].getSimpleValue();<br>
String isAutotoolsProjectValue = args[5].getSimpleValue();<br>
boolean isCProject = Boolean.valueOf(isCProjectValue).booleanValue();<br>
- boolean isEmptryProject = Boolean.valueOf(isEmptyProjetValue).booleanValue();<br>
+ boolean isEmptyProject =<br>
</div>+Boolean.valueOf(isEmptyProjetValue).booleanValue();<br>
<div class="im"> boolean isAutotoolsProject = Boolean.valueOf(isAutotoolsProjectValue).booleanValue();<br>
<br>
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);<br>
@@ -126,19 +128,8 @@ public class NewYoctoCProjectTemplate extends ProcessRunner {<br>
pca.setArtifactExtension(artifactExtension);<br>
info = pca.createProject(monitor, CCorePlugin.DEFAULT_INDEXER, isCProject);<br>
<br>
- AutotoolsNewProjectNature.addAutotoolsNature(project, monitor);<br>
- // For each IConfiguration, create a corresponding Autotools Configuration<br>
- IConfiguration[] cfgs = pca.getConfigs();<br>
- for (int i = 0; i < cfgs.length; ++i) {<br>
- IConfiguration cfg = cfgs[i];<br>
- AutotoolsConfigurationManager.getInstance().getConfiguration(project, cfg.getName(), true);<br>
- }<br>
- AutotoolsConfigurationManager.getInstance().saveConfigs(project);<br>
- if(isEmptryProject) {<br>
- YoctoSDKEmptyProjectNature.addYoctoSDKEmptyNature(project, monitor);<br>
- }<br>
- YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);<br>
- YoctoSDKProjectNature.configureAutotools(project);<br>
+ addNatures(project, false, isEmptyProject, isAutotoolsProject,<br>
</div>+monitor);<br>
<div><div class="h5">+<br>
info.setValid(true);<br>
ManagedBuildManager.saveBuildInfo(project, true);<br>
<br>
@@ -147,31 +138,19 @@ public class NewYoctoCProjectTemplate extends ProcessRunner {<br>
<br>
IWorkspace workspace = ResourcesPlugin.getWorkspace();<br>
turnOffAutoBuild(workspace);<br>
- YoctoProfileElement profileElement = YoctoSDKUtils.getProfilesFromDefaultStore();<br>
- IPreferenceStore selecteProfileStore = YoctoSDKPlugin.getProfilePreferenceStore(profileElement.getSelectedProfile());<br>
- YoctoUIElement elem = YoctoSDKUtils.getElemFromStore(selecteProfileStore);<br>
- SDKCheckResults result = YoctoSDKChecker.checkYoctoSDK(elem);<br>
- if (result != SDKCheckResults.SDK_PASS){<br>
- String strErrorMsg = YoctoSDKChecker.getErrorMessage(result, SDKCheckRequestFrom.Wizard);<br>
- throw new YoctoGeneralException(strErrorMsg);<br>
- }<br>
- AutotoolsNewProjectNature.addAutotoolsNature(project, monitor);<br>
- if(isEmptryProject) {<br>
- YoctoSDKEmptyProjectNature.addYoctoSDKEmptyNature(project, monitor);<br>
- }<br>
-<br>
- YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);<br>
- YoctoSDKProjectNature.configureAutotools(project);<br>
-<br>
- AutotoolsConfigurationManager.getInstance().saveConfigs(project);<br>
+<br>
+ YoctoSDKChecker.checkIfGloballySelectedYoctoProfileIsValid();<br>
+<br>
+ addNatures(project, true, isEmptyProject, isAutotoolsProject,<br>
</div></div>+monitor);<br>
<div class="im">+<br>
//restoreAutoBuild(workspace);<br>
IDiscoveredPathManager manager = MakeCorePlugin.getDefault().getDiscoveryManager();<br>
IDiscoveredPathInfo pathInfo = manager.getDiscoveredInfo(project);<br>
if (pathInfo instanceof IPerProjectDiscoveredPathInfo) {<br>
IPerProjectDiscoveredPathInfo projectPathInfo =<br>
(IPerProjectDiscoveredPathInfo) pathInfo;<br>
- projectPathInfo.setIncludeMap(new LinkedHashMap());<br>
- projectPathInfo.setSymbolMap(new LinkedHashMap());<br>
+ projectPathInfo.setIncludeMap(new LinkedHashMap<String, Boolean>());<br>
+ projectPathInfo.setSymbolMap(new LinkedHashMap<String,<br>
</div>+SymbolEntry>());<br>
<div class="im"> manager.removeDiscoveredInfo(project);<br>
}<br>
}<br>
@@ -200,6 +179,40 @@ public class NewYoctoCProjectTemplate extends ProcessRunner {<br>
return matcher.find();<br>
}<br>
<br>
+ private void addNatures(IProject project, boolean projectExists, boolean isEmptyProject,<br>
+ boolean isAutotoolsProject, IProgressMonitor monitor)<br>
+ throws CoreException, YoctoGeneralException {<br>
+ YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);<br>
+<br>
+ YoctoSDKChecker.checkIfGloballySelectedYoctoProfileIsValid();<br>
+<br>
+ YoctoProfileElement profileElement = YoctoSDKUtils.getProfilesFromDefaultStore();<br>
+ YoctoSDKUtils.saveProfilesToProjectPreferences(profileElement,<br>
</div>+project);<br>
<div><div class="h5">+<br>
+ IPreferenceStore selecteProfileStore = YoctoSDKPlugin.getProfilePreferenceStore(profileElement.getSelectedProfile());<br>
+ YoctoUIElement elem = YoctoSDKUtils.getElemFromStore(selecteProfileStore);<br>
+ YoctoSDKUtils.setEnvironmentVariables(project, elem);<br>
+<br>
+ if (isEmptyProject) {<br>
+ YoctoSDKEmptyProjectNature.addYoctoSDKEmptyNature(project, monitor);<br>
+ }<br>
+<br>
+ if (isAutotoolsProject) {<br>
+ AutotoolsNewProjectNature.addAutotoolsNature(project, monitor);<br>
+<br>
+ if(!projectExists) {<br>
+ // For each IConfiguration, create a corresponding Autotools Configuration<br>
+ for (IConfiguration cfg : pca.getConfigs()) {<br>
+ AutotoolsConfigurationManager.getInstance().getConfiguration(project, cfg.getName(), true);<br>
+ }<br>
+ AutotoolsConfigurationManager.getInstance().saveConfigs(project);<br>
+ }<br>
+<br>
+ YoctoSDKAutotoolsProjectNature.addYoctoSDKAutotoolsNature(project, monitor);<br>
+ YoctoSDKAutotoolsProjectNature.configureAutotoolsOptions(project);<br>
+ }<br>
+ }<br>
+<br>
protected final void turnOffAutoBuild(IWorkspace workspace) throws CoreException {<br>
IWorkspaceDescription workspaceDesc = workspace.getDescription();<br>
savedAutoBuildingValue = workspaceDesc.isAutoBuilding();<br>
--<br>
1.7.9.5<br>
<br>
</div></div>_______________________________________________<br>
yocto mailing list<br>
<a href="mailto:yocto@yoctoproject.org">yocto@yoctoproject.org</a><br>
<a href="https://lists.yoctoproject.org/listinfo/yocto" target="_blank">https://lists.yoctoproject.org/listinfo/yocto</a><br>
</blockquote></div><br></div>