# HG changeset patch # User Ed Swartz # Date 1260370820 21600 # Node ID 7f614450f806797242ad9272d693a4baca5bf649 # Parent 4b577b57a0283df727e0d3bfa62d5aa4b2ba40bf Fix more Linux path conversions in EpocEngineHelper diff -r 4b577b57a028 -r 7f614450f806 builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java Wed Dec 09 08:49:46 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEngineHelper.java Wed Dec 09 09:00:20 2009 -0600 @@ -660,7 +660,7 @@ } String releasePlatform = buildConfig.getSDK().getBSFCatalog().getReleasePlatform(buildConfig.getPlatformString()); - IPath path = buildConfig.getSDK().getReleaseRoot().append(releasePlatform).append(buildConfig.getTargetString()); + IPath path = buildConfig.getSDK().getReleaseRoot().append(releasePlatform.toLowerCase()).append(buildConfig.getTargetString().toLowerCase()); // if targetpath is non-null and this is an EKA1 emulator config then add it if (buildConfig.getPlatformString().equals(ISymbianBuildContext.EMULATOR_PLATFORM)) { @@ -749,9 +749,9 @@ } else { // if the target path is not set then by default it will usually // be left blank. for EKA2 though binaries need to go in \sys\bin\ - exePath = new Path("C:\\"); //$NON-NLS-1$ + exePath = Path.ROOT.setDevice("C:"); //$NON-NLS-1$ if (buildConfig.getSDK().getOSVersion().getMajor() > 8) { - exePath = exePath.append("sys\\bin\\"); //$NON-NLS-1$ + exePath = exePath.append("sys/bin/"); //$NON-NLS-1$ } String targetName = mmpData.getSingleArgumentSettings().get(EMMPStatement.TARGET); if (targetName != null) { @@ -815,7 +815,7 @@ } String releasePlatform = buildConfig.getSDK().getBSFCatalog().getReleasePlatform(buildConfig.getBasePlatformForVariation()); - IPath path = buildConfig.getSDK().getReleaseRoot().append(releasePlatform).append(buildConfig.getTargetString()); + IPath path = buildConfig.getSDK().getReleaseRoot().append(releasePlatform.toLowerCase()).append(buildConfig.getTargetString().toLowerCase()); // if targetpath is non-null and this is an EKA1 emulator config then add it if (buildConfig.getPlatformString().equals(ISymbianBuildContext.EMULATOR_PLATFORM)) { @@ -862,9 +862,9 @@ } else { // if the target path is not set then by default it will usually // be left blank. for EKA2 though binaries need to go in \sys\bin\ - exePath = new Path("C:\\"); //$NON-NLS-1$ + exePath = Path.ROOT.setDevice("C:"); //$NON-NLS-1$ if (buildConfig.getSDK().getOSVersion().getMajor() > 8) { - exePath = exePath.append("sys\\bin\\"); //$NON-NLS-1$ + exePath = exePath.append("sys/bin/"); //$NON-NLS-1$ } String targetName = mmpData.getSingleArgumentSettings().get(EMMPStatement.TARGET); if (targetName != null) { @@ -909,7 +909,7 @@ } for (EMMPLanguage language : languages) { String extension = ".R" + language.getCodeString(); //$NON-NLS-1$ - resources.put(baseGeneratedPath + extension, targetPath); + resources.put(HostOS.convertPathToNative(baseGeneratedPath + extension), HostOS.convertPathToWindows(targetPath)); } } @@ -953,39 +953,43 @@ } else { // for EKA1 just leave empty. for EKA2 use sys\bin\ if (buildConfig.getSDK().getOSVersion().getMajor() > 8) { - targetPath = "sys\\bin\\"; //$NON-NLS-1$ + targetPath = "sys/bin/"; //$NON-NLS-1$ } else { targetPath = ""; //$NON-NLS-1$ } } - String dataZDir = buildConfig.getSDK().getReleaseRoot().removeLastSegments(1).toOSString() + "\\Data\\z\\"; //$NON-NLS-1$ + String dataZDir = buildConfig.getSDK().getReleaseRoot().removeLastSegments(1).toPortableString() + "/data/z/"; //$NON-NLS-1$ // get the aifs List aifs = mmpData.getAifs(); for (IMMPAIFInfo aif : aifs) { IPath aifPath = aif.getTarget().makeAbsolute(); - resources.put(dataZDir + targetPath + aifPath.lastSegment(), "C:\\" + targetPath); //$NON-NLS-1$ + resources.put(HostOS.convertPathToNative(dataZDir + targetPath + aifPath.lastSegment().toLowerCase()), + HostOS.convertPathToWindows("C:\\" + targetPath)); //$NON-NLS-1$ } // get the bitmaps List bmps = mmpData.getBitmaps(); for (IMMPBitmap bmp : bmps) { IPath mbmPath = bmp.getTargetFilePath().makeRelative(); - resources.put(dataZDir + mbmPath.toOSString(), "C:\\" + mbmPath.removeLastSegments(1).addTrailingSeparator().toOSString()); //$NON-NLS-1$ + resources.put(HostOS.convertPathToNative(dataZDir + mbmPath.toOSString().toLowerCase()), + HostOS.convertPathToWindows("C:\\" + mbmPath.removeLastSegments(1).addTrailingSeparator().toOSString())); //$NON-NLS-1$ } // get the user resources List userResources = mmpData.getUserResources(); for (IPath userRes : userResources) { addResourceLanguageTargets(resources, mmpData, null, - dataZDir + targetPath + userRes.removeFileExtension().lastSegment(), "C:\\" + targetPath); //$NON-NLS-1$ //$NON-NLS-2$ + HostOS.convertPathToNative(dataZDir + targetPath + userRes.removeFileExtension().lastSegment().toLowerCase()), + HostOS.convertPathToWindows("C:\\" + targetPath)); //$NON-NLS-1$ } // get the system resources List systemResources = mmpData.getSystemResources(); for (IPath systemRes : systemResources) { addResourceLanguageTargets(resources, mmpData, null, - dataZDir + targetPath + systemRes.removeFileExtension().lastSegment(), "C:\\" + targetPath); //$NON-NLS-1$ //$NON-NLS-2$ + HostOS.convertPathToNative(dataZDir + targetPath + systemRes.removeFileExtension().lastSegment().toLowerCase()), + HostOS.convertPathToWindows("C:\\" + targetPath)); //$NON-NLS-1$ } // get the resource blocks @@ -1004,17 +1008,18 @@ resPath = resPath.makeRelative().addTrailingSeparator(); String filename = resourceBlock.getTargetFile(); if (filename == null) { - filename = resourceBlock.getSource().removeFileExtension().lastSegment(); + filename = resourceBlock.getSource().removeFileExtension().lastSegment().toLowerCase(); } else { - filename = new Path(filename).removeFileExtension().toOSString(); + filename = HostOS.createPathFromString(filename).removeFileExtension().toPortableString().toLowerCase(); } // adjust the path if necessary as it's different on the phone for the *_.reg file IPath adjustedTargetPath = resPath; - if (adjustedTargetPath.toOSString().equalsIgnoreCase("private\\10003a3f\\apps\\")) { //$NON-NLS-1$ - adjustedTargetPath = new Path("private\\10003a3f\\import\\apps\\"); //$NON-NLS-1$ + if (adjustedTargetPath.toPortableString().equalsIgnoreCase("private/10003a3f/apps/")) { //$NON-NLS-1$ + adjustedTargetPath = new Path("private/10003a3f/import/apps/"); //$NON-NLS-1$ } addResourceLanguageTargets(resources, mmpData, resourceBlock, - dataZDir + resPath.toOSString() + filename, "C:\\" + adjustedTargetPath.toOSString()); //$NON-NLS-1$ + HostOS.convertPathToNative(dataZDir + resPath.toOSString() + filename), + HostOS.convertPathToWindows("C:\\" + HostOS.convertPathToWindows(adjustedTargetPath))); //$NON-NLS-1$ } } return null; @@ -1058,13 +1063,14 @@ } } - String dataZDir = buildConfig.getSDK().getReleaseRoot().removeLastSegments(1).toOSString() + "\\Data\\z\\"; //$NON-NLS-1$ + String dataZDir = buildConfig.getSDK().getReleaseRoot().removeLastSegments(1).toPortableString() + "/data/z/"; //$NON-NLS-1$ // get the aifs List aifs = mmpData.getAifs(); for (IMMPAIFInfo aif : aifs) { IPath aifPath = aif.getTarget().makeAbsolute(); - resources.put(dataZDir + targetPath + aifPath.lastSegment(), "C:\\" + targetPath); //$NON-NLS-1$ + resources.put(HostOS.convertPathToNative(dataZDir + targetPath + aifPath.lastSegment()), + HostOS.convertPathToWindows("C:\\" + targetPath)); //$NON-NLS-1$ } // for resources and bitmaps, the target path may be based on the target type if not explicitly @@ -1073,9 +1079,9 @@ if (targetType != null) { // could be PLUGIN or PLUGIN3 if (targetType.toUpperCase().startsWith("PLUGIN")) { //$NON-NLS-1$ - targetPath = "resource\\plugins\\"; //$NON-NLS-1$ + targetPath = "resource/plugins/"; //$NON-NLS-1$ } else if (targetType.compareToIgnoreCase("PDL") == 0) { //$NON-NLS-1$ - targetPath = "resource\\printers\\"; //$NON-NLS-1$ + targetPath = "resource/printers/"; //$NON-NLS-1$ } } @@ -1087,21 +1093,24 @@ if (mbmPath.segmentCount() == 1) { mbmPath = new Path(targetPath).append(mbmPath); } - resources.put(dataZDir + mbmPath.toOSString(), "C:\\" + mbmPath.removeLastSegments(1).addTrailingSeparator().toOSString()); //$NON-NLS-1$ + resources.put(HostOS.convertPathToNative(dataZDir + mbmPath.toOSString()), + HostOS.convertPathToWindows("C:\\" + mbmPath.removeLastSegments(1).addTrailingSeparator().toOSString())); //$NON-NLS-1$ } // get the user resources List userResources = mmpData.getUserResources(); for (IPath userRes : userResources) { addResourceLanguageTargets(resources, mmpData, null, - dataZDir + targetPath + userRes.removeFileExtension().lastSegment(), "C:\\" + targetPath); //$NON-NLS-1$ //$NON-NLS-2$ + HostOS.convertPathToNative(dataZDir + targetPath + userRes.removeFileExtension().lastSegment()), + HostOS.convertPathToWindows("C:\\" + targetPath)); //$NON-NLS-1$ //$NON-NLS-2$ } // get the system resources List systemResources = mmpData.getSystemResources(); for (IPath systemRes : systemResources) { addResourceLanguageTargets(resources, mmpData, null, - dataZDir + targetPath + systemRes.removeFileExtension().lastSegment(), "C:\\" + targetPath); //$NON-NLS-1$ //$NON-NLS-2$ + HostOS.convertPathToNative(dataZDir + targetPath + systemRes.removeFileExtension().lastSegment()), + HostOS.convertPathToWindows("C:\\" + targetPath)); //$NON-NLS-1$ //$NON-NLS-2$ } // get the resource blocks @@ -1117,18 +1126,19 @@ if (filename == null) { filename = resourceBlock.getSource().removeFileExtension().lastSegment(); } else { - filename = new Path(filename).removeFileExtension().toOSString(); + filename = HostOS.createPathFromString(filename).removeFileExtension().toOSString(); } if (resPath != null) { resPath = resPath.makeRelative().addTrailingSeparator(); // adjust the path if necessary as it's different on the phone for the *_.reg file IPath adjustedTargetPath = resPath; - if (adjustedTargetPath.toOSString().equalsIgnoreCase("private\\10003a3f\\apps\\")) { //$NON-NLS-1$ - adjustedTargetPath = new Path("private\\10003a3f\\import\\apps\\"); //$NON-NLS-1$ + if ((adjustedTargetPath.toPortableString()).equalsIgnoreCase("private/10003a3f/apps/")) { //$NON-NLS-1$ + adjustedTargetPath = new Path("private/10003a3f/import/apps/"); //$NON-NLS-1$ } addResourceLanguageTargets(resources, mmpData, resourceBlock, - dataZDir + resPath.toOSString() + filename, "C:\\" + adjustedTargetPath.toOSString()); //$NON-NLS-1$ + HostOS.convertPathToNative(dataZDir + resPath.toOSString() + filename), + HostOS.convertPathToWindows("C:\\" + adjustedTargetPath)); //$NON-NLS-1$ } else { CarbideBuilderPlugin.log(Logging.newStatus(CarbideBuilderPlugin.getDefault(), IStatus.WARNING, @@ -1158,7 +1168,7 @@ public Object run(IBldInfView view) { EpocEnginePathHelper helper = new EpocEnginePathHelper(buildConfig); - final String dataZDir = buildConfig.getSDK().getReleaseRoot().removeLastSegments(1).toOSString() + "\\Data\\z\\"; //$NON-NLS-1$ + final String dataZDir = buildConfig.getSDK().getReleaseRoot().removeLastSegments(1).toOSString() + "\\data\\z\\"; //$NON-NLS-1$ for (IMakefileReference ref : view.getAllMakefileReferences()) { final IPath workspaceRelativeMakefilePath = helper.convertToWorkspace(ref.getPath()); @@ -1181,7 +1191,8 @@ if (targetPath != null && targetPath.segment(0).equalsIgnoreCase("epoc32")) { targetPath = targetPath.removeFirstSegments(3); } - resources.put(dataZDir + targetPath.toOSString(), "C:\\" + targetPath.toOSString()); //$NON-NLS-1$ + resources.put(HostOS.convertPathToNative(dataZDir + targetPath.toOSString()), + HostOS.convertPathToWindows("C:\\" + targetPath.toOSString())); //$NON-NLS-1$ } return null; @@ -1726,7 +1737,7 @@ String targetType = data.getSingleArgumentSettings().get(EMMPStatement.TARGETTYPE); if (targetType != null) { if (targetType.toUpperCase().matches("STDLIB|STDDLL|STDEXE")) { //$NON-NLS-1$ - File resolved = epocRoot.append("epoc32\\include\\stdapis").toFile(); //$NON-NLS-1$ + File resolved = epocRoot.append("epoc32/include/stdapis").toFile(); //$NON-NLS-1$ if (!systemPaths.contains(resolved)) systemPaths.add(resolved); } @@ -1752,21 +1763,21 @@ boolean isGCCE = ISymbianBuildContext.GCCE_PLATFORM.equals(platformString); if (isARMv5 || isGCCE) { if (isDebug) { - dirList.add(releaseRoot.append("ARMv5\\UDEB\\")); //$NON-NLS-1$ - dirList.add(releaseRoot.append("ARMv5\\UREL\\")); //$NON-NLS-1$ - dirList.add(releaseRoot.append("ARMv5\\LIB\\")); //$NON-NLS-1$ + dirList.add(releaseRoot.append("armv5/udeb/")); //$NON-NLS-1$ + dirList.add(releaseRoot.append("armv5/urel/")); //$NON-NLS-1$ + dirList.add(releaseRoot.append("armv5/lib/")); //$NON-NLS-1$ } else { - dirList.add(releaseRoot.append("ARMv5\\UREL\\")); //$NON-NLS-1$ - dirList.add(releaseRoot.append("ARMv5\\LIB\\")); //$NON-NLS-1$ + dirList.add(releaseRoot.append("armv5/urel/")); //$NON-NLS-1$ + dirList.add(releaseRoot.append("armv5/lib/")); //$NON-NLS-1$ } } else { if (isDebug) { - dirList.add(releaseRoot.append(platformString + "\\UDEB\\")); //$NON-NLS-1$ - dirList.add(releaseRoot.append(platformString + "\\UREL\\")); //$NON-NLS-1$ + dirList.add(releaseRoot.append(platformString + "/udeb/")); //$NON-NLS-1$ + dirList.add(releaseRoot.append(platformString + "/urel/")); //$NON-NLS-1$ } else { - dirList.add(releaseRoot.append(platformString + "\\UREL\\")); //$NON-NLS-1$ + dirList.add(releaseRoot.append(platformString + "/urel/")); //$NON-NLS-1$ } } return dirList.toArray(new IPath[dirList.size()]);