[yocto] [PATCHv2 4/9] plugins/sdk.ide: Switch to YoctoSDKAutotoolsProjectNature

Atanas Gegov atanas.gegov.oss at gmail.com
Tue Apr 16 05:38:59 PDT 2013


Hi Jessica,

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.

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:
- YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);
- YoctoSDKAutotoolsProjectNature.addYoctoSDKAutotoolsNature(project,
monitor);
Or do you mean some other solution?

Looking forward to your feedback!

Best regards,
Atanas

On Mon, Apr 15, 2013 at 9:12 PM, Zhang, Jessica <jessica.zhang at intel.com>wrote:

> Hi Atanas,
>
> 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.
>
> Thanks,
> Jessica
>
> -----Original Message-----
> From: yocto-bounces at yoctoproject.org [mailto:
> yocto-bounces at yoctoproject.org] On Behalf Of Atanas Gegov
> Sent: Thursday, April 11, 2013 4:25 AM
> To: yocto at yoctoproject.org
> Subject: [yocto] [PATCHv2 4/9] plugins/sdk.ide: Switch to
> YoctoSDKAutotoolsProjectNature
>
> From: Atanas Gegov <atanas.gegov at bmw-carit.de>
>
> 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.
> ---
>  plugins/org.yocto.sdk.ide/plugin.xml               |    2 +-
>  .../natures/YoctoSDKAutotoolsProjectNature.java    |   45 +++++++++++
>  .../sdk/ide/natures/YoctoSDKProjectNature.java     |   70
> -----------------
>  .../src/org/yocto/sdk/ide/utils/YoctoSDKUtils.java |    6 +-
>  .../sdk/ide/wizard/NewYoctoCProjectTemplate.java   |   79
> ++++++++++++--------
>  5 files changed, 96 insertions(+), 106 deletions(-)
>
> diff --git a/plugins/org.yocto.sdk.ide/plugin.xml
> b/plugins/org.yocto.sdk.ide/plugin.xml
> index f21434b..35e34b4 100644
> --- a/plugins/org.yocto.sdk.ide/plugin.xml
> +++ b/plugins/org.yocto.sdk.ide/plugin.xml
> @@ -91,7 +91,7 @@
>                             type="org.eclipse.core.resources.IResource">
>                          <test
>
>  property="org.eclipse.core.resources.projectNature"
> -                              value="org.yocto.sdk.ide.YoctoSDKNature">
> +
> + value="org.yocto.sdk.ide.YoctoSDKAutotoolsNature">
>                          </test>
>                       </adapt>
>                    </iterate>
> 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
> index ac73878..767c005 100644
> ---
> 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/YoctoSDKAu
> +++ totoolsProjectNature.java
> @@ -10,15 +10,31 @@
>
> *******************************************************************************/
>  package org.yocto.sdk.ide.natures;
>
> +import
> +org.eclipse.cdt.internal.autotools.core.configure.AutotoolsConfiguratio
> +nManager; import
> +org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration;
> +import org.eclipse.cdt.managedbuilder.core.IConfiguration;
> +import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
> +import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
>  import org.eclipse.core.resources.IProject;
>  import org.eclipse.core.resources.IProjectNature;
>  import org.eclipse.core.runtime.CoreException;
>  import org.eclipse.core.runtime.IProgressMonitor;
>  import org.yocto.sdk.ide.YoctoSDKPlugin;
> +import org.yocto.sdk.ide.YoctoUIElement; import
> +org.yocto.sdk.ide.utils.YoctoSDKUtils;
>
>  public class YoctoSDKAutotoolsProjectNature implements IProjectNature {
>         public static final  String YoctoSDK_AUTOTOOLS_NATURE_ID =
> YoctoSDKPlugin.getUniqueIdentifier() + ".YoctoSDKAutotoolsNature";
>
> +       private static final String DEFAULT_HOST_STR = "host";
> +       private static final String DEFAULT_TARGET_STR = "target";
> +       private static final String DEFAULT_BUILD_STR = "build";
> +       private static final String DEFAULT_AUTOGEN_OPT_STR =
> "autogenOpts";
> +
> +       private static final String DEFAULT_CONFIGURE_STR = "configure";
> +       private static final String DEFAULT_AUTOGEN_STR = "autogen";
> +       private static final String DEFAULT_LIBTOOL_SYSROOT_PREFIX = "
> +--with-libtool-sysroot=";
> +
>         private IProject proj;
>
>         public void configure() throws CoreException { @@ -38,4 +54,33 @@
> public class YoctoSDKAutotoolsProjectNature implements IProjectNature {
>         public static void addYoctoSDKAutotoolsNature(IProject project,
> IProgressMonitor monitor) throws CoreException {
>                 YoctoSDKNatureUtils.addNature(project,
> YoctoSDK_AUTOTOOLS_NATURE_ID, monitor);
>         }
> +
> +       public static void configureAutotoolsOptions(IProject project) {
> +               IManagedBuildInfo info =
> ManagedBuildManager.getBuildInfo(project);
> +               IConfiguration icfg = info.getDefaultConfiguration();
> +               YoctoUIElement elem =
> YoctoSDKUtils.getElemFromProjectEnv(project);
> +               String sysroot_str = elem.getStrSysrootLoc();
> +               String id = icfg.getId();
> +               String CFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "CFLAGS");
> +               String CXXFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "CXXFLAGS");
> +               String CPPFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "CPPFLAGS");
> +               String LDFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "LDFLAGS");
> +
> +               String command_prefix = "CFLAGS=\" -g -O0 " + CFLAGS_str +
> "\" CXXFLAGS=\" -g -O0 "
> +                               + CXXFLAGS_str + "\" LDFLAGS=\"" +
> LDFLAGS_str + "\" CPPFLAGS=\"" + CPPFLAGS_str + "\"";
> +               String autogen_setting = command_prefix+" autogen.sh" +
> DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;
> +               String configure_setting = command_prefix + " configure" +
> DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;
> +               IAConfiguration cfg =
> AutotoolsConfigurationManager.getInstance().getConfiguration(project, id);
> +               String strConfigure = YoctoSDKUtils.getEnvValue(project,
> +"CONFIGURE_FLAGS");
> +
> +               cfg.setOption(DEFAULT_CONFIGURE_STR, configure_setting);
> +               cfg.setOption(DEFAULT_BUILD_STR,
> YoctoSDKUtils.splitString(strConfigure, "--build="));
> +               cfg.setOption(DEFAULT_HOST_STR,
> YoctoSDKUtils.splitString(strConfigure, "--host="));
> +               cfg.setOption(DEFAULT_TARGET_STR,
> YoctoSDKUtils.splitString(strConfigure, "--target="));
> +               cfg.setOption(DEFAULT_AUTOGEN_STR, autogen_setting);
> +               cfg.setOption(DEFAULT_AUTOGEN_OPT_STR, strConfigure);
> +
> +
> AutotoolsConfigurationManager.getInstance().addConfiguration(project, cfg);
> +
> AutotoolsConfigurationManager.getInstance().saveConfigs(project);
> +       }
>  }
> 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
> index fcb296d..51926fb 100644
> ---
> 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/YoctoSDKPr
> +++ ojectNature.java
> @@ -10,39 +10,15 @@
>
> *******************************************************************************/
>  package org.yocto.sdk.ide.natures;
>
> -import
> org.eclipse.cdt.internal.autotools.core.configure.AutotoolsConfigurationManager;
> -import org.eclipse.cdt.internal.autotools.core.configure.IAConfiguration;
> -import org.eclipse.cdt.managedbuilder.core.IConfiguration;
> -import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
> -import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
>  import org.eclipse.core.resources.IProject;
>  import org.eclipse.core.resources.IProjectNature;
>  import org.eclipse.core.runtime.CoreException;
>  import org.eclipse.core.runtime.IProgressMonitor;
> -import org.eclipse.jface.preference.IPreferenceStore;
> -import org.yocto.sdk.ide.YoctoGeneralException;
> -import org.yocto.sdk.ide.YoctoProfileElement;
> -import org.yocto.sdk.ide.YoctoSDKChecker;
>  import org.yocto.sdk.ide.YoctoSDKPlugin; -import
> org.yocto.sdk.ide.YoctoUIElement; -import
> org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckRequestFrom;
> -import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckResults;
> -import org.yocto.sdk.ide.utils.YoctoSDKUtils;
>
> -
> - at SuppressWarnings("restriction")
>  public class YoctoSDKProjectNature implements IProjectNature {
>         public static final  String YoctoSDK_NATURE_ID =
> YoctoSDKPlugin.getUniqueIdentifier() + ".YoctoSDKNature";
>
> -       private static final String DEFAULT_HOST_STR = "host";
> -       private static final String DEFAULT_TARGET_STR = "target";
> -       private static final String DEFAULT_BUILD_STR = "build";
> -       private static final String DEFAULT_AUTOGEN_OPT_STR =
> "autogenOpts";
> -
> -       private static final String DEFAULT_CONFIGURE_STR = "configure";
> -       private static final String DEFAULT_AUTOGEN_STR = "autogen";
> -       private static final String DEFAULT_LIBTOOL_SYSROOT_PREFIX = "
> --with-libtool-sysroot=";
> -
>         private IProject proj;
>
>         public void configure() throws CoreException { @@ -62,50 +38,4 @@
> public class YoctoSDKProjectNature implements IProjectNature {
>         public static void addYoctoSDKNature(IProject project,
> IProgressMonitor monitor) throws CoreException {
>                 YoctoSDKNatureUtils.addNature(project, YoctoSDK_NATURE_ID,
> monitor);
>         }
> -
> -       public static void configureAutotoolsOptions(IProject project) {
> -               IManagedBuildInfo info =
> ManagedBuildManager.getBuildInfo(project);
> -               IConfiguration icfg = info.getDefaultConfiguration();
> -               YoctoUIElement elem =
> YoctoSDKUtils.getElemFromProjectEnv(project);
> -               String sysroot_str = elem.getStrSysrootLoc();
> -               String id = icfg.getId();
> -               String CFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "CFLAGS");
> -               String CXXFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "CXXFLAGS");
> -               String CPPFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "CPPFLAGS");
> -               String LDFLAGS_str = YoctoSDKUtils.getEnvValue(project,
> "LDFLAGS");
> -
> -               String command_prefix = "CFLAGS=\" -g -O0 " + CFLAGS_str +
> "\" CXXFLAGS=\" -g -O0 "
> -               + CXXFLAGS_str + "\" LDFLAGS=\"" + LDFLAGS_str + "\"
> CPPFLAGS=\"" + CPPFLAGS_str + "\"";
> -               String autogen_setting = command_prefix+" autogen.sh" +
> DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;
> -               String configure_setting = command_prefix + " configure" +
> DEFAULT_LIBTOOL_SYSROOT_PREFIX + sysroot_str;
> -               IAConfiguration cfg =
> AutotoolsConfigurationManager.getInstance().getConfiguration(project, id);
> -               String strConfigure = YoctoSDKUtils.getEnvValue(project,
> "CONFIGURE_FLAGS");
> -
> -               cfg.setOption(DEFAULT_CONFIGURE_STR, configure_setting);
> -               cfg.setOption(DEFAULT_BUILD_STR,
> YoctoSDKUtils.splitString(strConfigure, "--build="));
> -               cfg.setOption(DEFAULT_HOST_STR,
> YoctoSDKUtils.splitString(strConfigure, "--host="));
> -               cfg.setOption(DEFAULT_TARGET_STR,
> YoctoSDKUtils.splitString(strConfigure, "--target="));
> -               cfg.setOption(DEFAULT_AUTOGEN_STR, autogen_setting);
> -               cfg.setOption(DEFAULT_AUTOGEN_OPT_STR, strConfigure);
> -
> -
> AutotoolsConfigurationManager.getInstance().addConfiguration(project, cfg);
> -
> AutotoolsConfigurationManager.getInstance().saveConfigs(project);
> -       }
> -
> -       public static void configureAutotools(IProject project) throws
> YoctoGeneralException {
> -               YoctoProfileElement profileElement =
> YoctoSDKUtils.getProfilesFromDefaultStore();
> -
> YoctoSDKUtils.saveProfilesToProjectPreferences(profileElement, project);
> -               IPreferenceStore selecteProfileStore =
> YoctoSDKPlugin.getProfilePreferenceStore(profileElement.getSelectedProfile());
> -               YoctoUIElement elem =
> YoctoSDKUtils.getElemFromStore(selecteProfileStore);
> -               SDKCheckResults result =
> YoctoSDKChecker.checkYoctoSDK(elem);
> -               if (result != SDKCheckResults.SDK_PASS){
> -                       String strErrorMsg =
>  YoctoSDKChecker.getErrorMessage(result, SDKCheckRequestFrom.Wizard);
> -                       throw new YoctoGeneralException(strErrorMsg);
> -               }
> -               else
> -               {
> -                       YoctoSDKUtils.setEnvironmentVariables(project,
> elem);
> -                       configureAutotoolsOptions(project);
> -               }
> -       }
>  }
> 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
> index bd781b3..1e2e424 100644
> ---
> 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/YoctoSDKUtil
> +++ s.java
> @@ -54,8 +54,8 @@ import org.yocto.sdk.ide.YoctoProfileElement;
>  import org.yocto.sdk.ide.YoctoSDKMessages;
>  import org.yocto.sdk.ide.YoctoSDKPlugin;  import
> org.yocto.sdk.ide.YoctoUIElement;
> +import org.yocto.sdk.ide.natures.YoctoSDKAutotoolsProjectNature;
>  import org.yocto.sdk.ide.natures.YoctoSDKEmptyProjectNature;
> -import org.yocto.sdk.ide.natures.YoctoSDKProjectNature;
>  import org.yocto.sdk.ide.preferences.PreferenceConstants;
>
>  public class YoctoSDKUtils {
> @@ -427,7 +427,9 @@ public class YoctoSDKUtils {
>
>                 try {
>                         setEnvironmentVariables(project, elem);
> -
> YoctoSDKProjectNature.configureAutotoolsOptions(project);
> +
> if(project.hasNature(YoctoSDKAutotoolsProjectNature.YoctoSDK_AUTOTOOLS_NATURE_ID))
> {
> +
> YoctoSDKAutotoolsProjectNature.configureAutotoolsOptions(project);
> +                       }
>                         IConsole console =
> CCorePlugin.getDefault().getConsole("org.yocto.sdk.ide.YoctoConsole");
>                         console.start(project);
>                         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
> index 73531e5..239cbf8 100644
> ---
> 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/NewYoctoCPr
> +++ ojectTemplate.java
> @@ -28,6 +28,7 @@ import org.eclipse.cdt.make.core.MakeCorePlugin;
>  import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager;
>  import
> org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo;
>  import
> org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IPerProjectDiscoveredPathInfo;
> +import
> +org.eclipse.cdt.make.internal.core.scannerconfig.util.SymbolEntry;
>  import org.eclipse.cdt.managedbuilder.core.BuildException;
>  import org.eclipse.cdt.managedbuilder.core.IConfiguration;
>  import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
> @@ -56,6 +57,7 @@ import org.yocto.sdk.ide.YoctoSDKChecker.SDKCheckResults;
>  import org.yocto.sdk.ide.YoctoSDKMessages;
>  import org.yocto.sdk.ide.YoctoSDKPlugin;  import
> org.yocto.sdk.ide.YoctoUIElement;
> +import org.yocto.sdk.ide.natures.YoctoSDKAutotoolsProjectNature;
>  import org.yocto.sdk.ide.natures.YoctoSDKEmptyProjectNature;
>  import org.yocto.sdk.ide.natures.YoctoSDKProjectNature;
>  import org.yocto.sdk.ide.utils.YoctoSDKUtils;
> @@ -88,7 +90,7 @@ public class NewYoctoCProjectTemplate extends
> ProcessRunner {
>                 String isEmptyProjetValue = args[4].getSimpleValue();
>                 String isAutotoolsProjectValue = args[5].getSimpleValue();
>                 boolean isCProject =
> Boolean.valueOf(isCProjectValue).booleanValue();
> -               boolean isEmptryProject =
> Boolean.valueOf(isEmptyProjetValue).booleanValue();
> +               boolean isEmptyProject =
> +Boolean.valueOf(isEmptyProjetValue).booleanValue();
>                 boolean isAutotoolsProject =
> Boolean.valueOf(isAutotoolsProjectValue).booleanValue();
>
>                 IProject project =
> ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
> @@ -126,19 +128,8 @@ public class NewYoctoCProjectTemplate extends
> ProcessRunner {
>
> pca.setArtifactExtension(artifactExtension);
>                                 info = pca.createProject(monitor,
> CCorePlugin.DEFAULT_INDEXER, isCProject);
>
> -
> AutotoolsNewProjectNature.addAutotoolsNature(project, monitor);
> -                               // For each IConfiguration, create a
> corresponding Autotools Configuration
> -                               IConfiguration[] cfgs = pca.getConfigs();
> -                               for (int i = 0; i < cfgs.length; ++i) {
> -                                       IConfiguration cfg = cfgs[i];
> -
> AutotoolsConfigurationManager.getInstance().getConfiguration(project,
> cfg.getName(), true);
> -                               }
> -
> AutotoolsConfigurationManager.getInstance().saveConfigs(project);
> -                               if(isEmptryProject) {
> -
> YoctoSDKEmptyProjectNature.addYoctoSDKEmptyNature(project, monitor);
> -                               }
> -
> YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);
> -
> YoctoSDKProjectNature.configureAutotools(project);
> +                               addNatures(project, false, isEmptyProject,
> isAutotoolsProject,
> +monitor);
> +
>                                 info.setValid(true);
>                                 ManagedBuildManager.saveBuildInfo(project,
> true);
>
> @@ -147,31 +138,19 @@ public class NewYoctoCProjectTemplate extends
> ProcessRunner {
>
>                                 IWorkspace workspace =
> ResourcesPlugin.getWorkspace();
>                                 turnOffAutoBuild(workspace);
> -                               YoctoProfileElement profileElement =
> YoctoSDKUtils.getProfilesFromDefaultStore();
> -                               IPreferenceStore selecteProfileStore =
> YoctoSDKPlugin.getProfilePreferenceStore(profileElement.getSelectedProfile());
> -                               YoctoUIElement elem =
> YoctoSDKUtils.getElemFromStore(selecteProfileStore);
> -                               SDKCheckResults result =
> YoctoSDKChecker.checkYoctoSDK(elem);
> -                               if (result != SDKCheckResults.SDK_PASS){
> -                                       String strErrorMsg =
>  YoctoSDKChecker.getErrorMessage(result, SDKCheckRequestFrom.Wizard);
> -                                       throw new
> YoctoGeneralException(strErrorMsg);
> -                               }
> -
> AutotoolsNewProjectNature.addAutotoolsNature(project, monitor);
> -                               if(isEmptryProject) {
> -
> YoctoSDKEmptyProjectNature.addYoctoSDKEmptyNature(project, monitor);
> -                               }
> -
> -
> YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);
> -
> YoctoSDKProjectNature.configureAutotools(project);
> -
> -
> AutotoolsConfigurationManager.getInstance().saveConfigs(project);
> +
> +
> YoctoSDKChecker.checkIfGloballySelectedYoctoProfileIsValid();
> +
> +                               addNatures(project, true, isEmptyProject,
> isAutotoolsProject,
> +monitor);
> +
>                                 //restoreAutoBuild(workspace);
>                                 IDiscoveredPathManager manager =
> MakeCorePlugin.getDefault().getDiscoveryManager();
>                                 IDiscoveredPathInfo pathInfo =
> manager.getDiscoveredInfo(project);
>                                 if (pathInfo instanceof
> IPerProjectDiscoveredPathInfo) {
>                                     IPerProjectDiscoveredPathInfo
> projectPathInfo =
>                                         (IPerProjectDiscoveredPathInfo)
> pathInfo;
> -                                   projectPathInfo.setIncludeMap(new
> LinkedHashMap());
> -                                   projectPathInfo.setSymbolMap(new
> LinkedHashMap());
> +                                   projectPathInfo.setIncludeMap(new
> LinkedHashMap<String, Boolean>());
> +                                   projectPathInfo.setSymbolMap(new
> LinkedHashMap<String,
> +SymbolEntry>());
>                                     manager.removeDiscoveredInfo(project);
>                                 }
>                         }
> @@ -200,6 +179,40 @@ public class NewYoctoCProjectTemplate extends
> ProcessRunner {
>                 return matcher.find();
>  }
>
> +       private void addNatures(IProject project, boolean projectExists,
> boolean isEmptyProject,
> +                       boolean isAutotoolsProject, IProgressMonitor
> monitor)
> +                                       throws CoreException,
> YoctoGeneralException {
> +               YoctoSDKProjectNature.addYoctoSDKNature(project, monitor);
> +
> +
> YoctoSDKChecker.checkIfGloballySelectedYoctoProfileIsValid();
> +
> +               YoctoProfileElement profileElement =
> YoctoSDKUtils.getProfilesFromDefaultStore();
> +
> YoctoSDKUtils.saveProfilesToProjectPreferences(profileElement,
> +project);
> +
> +               IPreferenceStore selecteProfileStore =
> YoctoSDKPlugin.getProfilePreferenceStore(profileElement.getSelectedProfile());
> +               YoctoUIElement elem =
> YoctoSDKUtils.getElemFromStore(selecteProfileStore);
> +               YoctoSDKUtils.setEnvironmentVariables(project, elem);
> +
> +               if (isEmptyProject) {
> +
> YoctoSDKEmptyProjectNature.addYoctoSDKEmptyNature(project, monitor);
> +               }
> +
> +               if (isAutotoolsProject) {
> +
> AutotoolsNewProjectNature.addAutotoolsNature(project, monitor);
> +
> +                       if(!projectExists) {
> +                               // For each IConfiguration, create a
> corresponding Autotools Configuration
> +                               for (IConfiguration cfg :
> pca.getConfigs()) {
> +
> AutotoolsConfigurationManager.getInstance().getConfiguration(project,
> cfg.getName(), true);
> +                               }
> +
> AutotoolsConfigurationManager.getInstance().saveConfigs(project);
> +                       }
> +
> +
> YoctoSDKAutotoolsProjectNature.addYoctoSDKAutotoolsNature(project, monitor);
> +
> YoctoSDKAutotoolsProjectNature.configureAutotoolsOptions(project);
> +               }
> +       }
> +
>         protected final void turnOffAutoBuild(IWorkspace workspace) throws
> CoreException {
>                 IWorkspaceDescription workspaceDesc =
> workspace.getDescription();
>                 savedAutoBuildingValue = workspaceDesc.isAutoBuilding();
> --
> 1.7.9.5
>
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130416/37ea2bb4/attachment.html>


More information about the yocto mailing list