From: Björn Arnelid <bjorn.arne...@enea.com>

[Yocto Bugzilla] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=3019

When using a Toolchain where sysroot is not named <arch>-pokysdk-linux a 
NullPointerException is thrown when trying to apply changes in Yocto 
Preferences.
It should be possible to use Toolchains with a sysroot named 
<arch>-<organizationName>sdk-linux with the plugin.

static private String findHostArch(File sysroot_dir) now accept folders named 
*sdk-linux instead of *-pokysdk-linux. checkYoctoSDK will also return 
SDKCheckResults.TOOLCHAIN_NO_SYSROOT if findHostArch returns null.

Author:    Björn Arnelid <bjorn.arne...@enea.com>
Signed-off-by: David Nyström <david.nyst...@enea.com>
---
 .../src/org/yocto/sdk/ide/YoctoSDKUtils.java       |   20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java 
b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java
index 6be90be..749fac7 100644
--- a/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java
+++ b/plugins/org.yocto.sdk.ide/src/org/yocto/sdk/ide/YoctoSDKUtils.java
@@ -100,7 +100,17 @@ public class YoctoSDKUtils {
                        File sysroot_dir = new File(sysroot_dir_str);
                        if (!sysroot_dir.exists())
                                return SDKCheckResults.TOOLCHAIN_NO_SYSROOT;
-                       String toolchain_host_arch = findHostArch(sysroot_dir);
+                       
+                       String toolchain_host_arch = null;
+                       
+                       try 
+                       {
+                               toolchain_host_arch = findHostArch(sysroot_dir);
+                       }
+                       catch(NullPointerException e) 
+                       {
+                               return SDKCheckResults.TOOLCHAIN_NO_SYSROOT;
+                       }
                        
                        if (!toolchain_host_arch.equalsIgnoreCase(platform)) {
                                if (!platform.matches("i\\d86") || 
!toolchain_host_arch.matches("i\\d86"))
@@ -576,7 +586,7 @@ public class YoctoSDKUtils {
        static private String findHostArch(File sysroot_dir) {
                FilenameFilter nativeFilter = new FilenameFilter() {
                        public boolean accept(File dir, String name) {
-                               if (name.endsWith("-pokysdk-linux")) {
+                               if (name.endsWith("sdk-linux")) {
                                        return true;
                                } else {
                                        return false;
@@ -590,11 +600,11 @@ public class YoctoSDKUtils {
                for (File file : files) {
                        if (file.isDirectory()) {
                                String path = file.getName();
-                               arch = path.substring(0, 
path.indexOf("-pokysdk-linux"));
+                               String[] subPath = path.split("-");
+                               arch = subPath[0];
                        } else 
                                continue;
         }
                return arch;
        }
-}
-
+}
\ No newline at end of file
-- 
1.7.9.5

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to