Changeset 4c7803f in rtems-eclipse-plug-in


Ignore:
Timestamp:
Feb 6, 2009, 4:32:11 PM (10 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
8e6327a
Parents:
b9a8b46
Message:

Improved error messages.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • org.rtems.cdt/src/org/rtems/cdt/Storage.java

    rb9a8b46 r4c7803f  
    153153        }
    154154
     155        public static String getPlatform( IProject project) {
     156                return getPristineProperty( project, Constants.PLATFORM_KEY);
     157        }
     158       
     159        public static void setPlatform( IProject project, String platform) {
     160                setProperty( project, Constants.PLATFORM_KEY, platform);
     161        }
     162
    155163        public static void clearPlatform( IProject project) {
    156                 setProperty( project, Constants.PLATFORM_KEY, null);
     164                setPlatform( project, null);
    157165
    158166                // Delete discovered paths for all configurations of the project
     
    165173        }
    166174
    167         public static String getPlatform( IProject project) {
    168                 return getPristineProperty( project, Constants.PLATFORM_KEY);
    169         }
    170 
    171175        public static void changePlatform( IProject project, String newPlatform) {
    172176                String platform = getPlatform( project);
     
    179183
    180184                // Set new platform
    181                 setProperty( project, Constants.PLATFORM_KEY, newPlatform);
     185                setPlatform( project, newPlatform);
    182186
    183187                // Update path prepends
     
    202206                IPath make = new Path( "make");
    203207                List<String> options = new LinkedList<String>();
     208                boolean error = false;
    204209               
    205210                // Set tools to default values
     
    238243                env.put( Constants.PATH_VARIABLE_NAME, path);
    239244
    240                 // On windows we have to search for the make program in the new path environment
     245                // On Windows we have to search for the make program in the new path environment
    241246                if (Platform.getOS().equals( Platform.OS_WIN32)) {
    242247                        String parts [] = path.split( Constants.PATH_SEPARATOR);
     248                        boolean found = false;
     249                       
    243250                        for (String p : parts) {
    244251                                IPath makeCandidate = new Path( p).append( "make.exe");
    245252                                File file = new File( makeCandidate.toOSString());
     253                               
    246254                                if (file.exists()) {
    247255                                        make = makeCandidate;
     256                                        found = true;
    248257                                        break;
    249258                                }
    250259                        }
     260                       
     261                        if (!found) {
     262                                createMarker(
     263                                        project,
     264                                        Constants.MARKER_ID_TOOL_DISCOVERY,
     265                                        "make program not found, check your Cygwin or MinGW settings in the RTEMS preferences"
     266                                );
     267                        }
    251268                }
    252269
    253270                // Set command line
     271                String makeArgument = Constants.BSP_PATH_MAKE_VARIABLE + "=" + bspPath;
    254272                pb.command(
    255273                        make.toOSString(),
    256                         Constants.BSP_PATH_MAKE_VARIABLE + "=" + bspPath
     274                        makeArgument
    257275                );
    258276
     
    307325                        }
    308326                } catch (IOException e) {
     327                        error = true;
    309328                        createMarker(
    310329                                project,
     
    325344                // Check exit status
    326345                if (p.exitValue() != 0) {
     346                        error = true;
    327347                        createMarker(
    328348                                project,
    329349                                Constants.MARKER_ID_TOOL_DISCOVERY,
    330                                 "make invokation `" + make.toOSString() + "' returned with error status " + p.exitValue()
     350                                "make invokation `" + make.toOSString() + " " + makeArgument + "' returned with error status " + p.exitValue()
    331351                        );
     352                }
     353               
     354                // Check error
     355                if (error) {
     356                        // Clear platform to trigger an update again if someone changed a preference or property value
     357                        setPlatform( project, null);
    332358                }
    333359        }
Note: See TracChangeset for help on using the changeset viewer.