Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 328250

Summary: CommonBuilder should use EFSExtensionManager to determine build working directory
Product: [Tools] CDT Reporter: Chris Recoskie <recoskie>
Component: cdt-buildAssignee: Chris Recoskie <recoskie>
Status: RESOLVED FIXED QA Contact: Andrew Gvozdev <angvoz.dev>
Severity: normal    
Priority: P3 CC: cdt-build-inbox, cdtdoug, vivkong
Version: 7.0.1   
Target Milestone: 7.0.2   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
proposed patch
recoskie: iplog-
updated patch for cdt_7_0
recoskie: iplog-
patch for HEAD
recoskie: iplog-
fix for version numbers on cdt_7_0 recoskie: iplog-

Description Chris Recoskie CLA 2010-10-20 10:55:42 EDT
Created attachment 181297 [details]
proposed patch

CommonBuilder currently has the following code in invokeMake(...):

IPath workingDirectory = ManagedBuildManager.getBuildLocation(cfg, builder);
URI workingDirectoryURI = ManagedBuildManager.getBuildLocationURI(cfg, builder);

The workingDirectory is then passed to the command launcher when launching make.  The workingDirectoryURI is currently only used for the error parser manager.

Unforunately, this approach does not worked for linked EFS filesystems.

The attached patch changes it so the workingDirectoryURI is used in conjunction with EFSExtensionManager to get a corresponding path.  That path is then passed to the command launcher.

I have tested this with both a remote, virtual EFS provider, and with a local CygWin project, and all seems fine.  MBS Core tests all pass as well.
Comment 1 Andrew Gvozdev CLA 2010-10-20 12:38:08 EDT
Looks good to me. It should work for scanner discovery too I think.
Your patch does not apply on HEAD though.
Comment 2 Chris Recoskie CLA 2010-10-22 15:10:14 EDT
Created attachment 181539 [details]
updated patch for cdt_7_0

New patch for CDT 7 attached.
Comment 3 Chris Recoskie CLA 2010-10-22 15:10:44 EDT
Created attachment 181540 [details]
patch for HEAD
Comment 4 Chris Recoskie CLA 2010-10-26 15:27:34 EDT
Patches applied to cdt_7_0 and HEAD.
Comment 5 CDT Genie CLA 2010-10-26 16:23:04 EDT
*** cdt cvs genie on behalf of crecoskie ***
Bug 328250 - CommonBuilder should use EFSExtensionManager to determine build working directory

[*] CommonBuilder.java 1.47.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/CommonBuilder.java?root=Tools_Project&r1=1.47&r2=1.47.2.1
[*] GeneratedMakefileBuilder.java 1.78.2.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java?root=Tools_Project&r1=1.78.2.2&r2=1.78.2.3

[*] MakeBuilder.java 1.58.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java?root=Tools_Project&r1=1.58&r2=1.58.2.1

[*] MakeMessages.properties 1.15.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.properties?root=Tools_Project&r1=1.15&r2=1.15.2.1

[*] DefaultRunSIProvider.java 1.22.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java?root=Tools_Project&r1=1.22&r2=1.22.2.1

[*] ExternalBuildRunner.java 1.5 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ExternalBuildRunner.java?root=Tools_Project&r1=1.4&r2=1.5

[*] GeneratedMakefileBuilder.java 1.82 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java?root=Tools_Project&r1=1.81&r2=1.82

[*] MakeBuilder.java 1.59 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java?root=Tools_Project&r1=1.58&r2=1.59
[*] MakeBuilderUtil.java 1.8 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilderUtil.java?root=Tools_Project&r1=1.7&r2=1.8

[*] MakeMessages.properties 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeMessages.properties?root=Tools_Project&r1=1.15&r2=1.16

[*] MANIFEST.MF 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF?root=Tools_Project&r1=1.15&r2=1.16

[*] DefaultRunSIProvider.java 1.23 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/DefaultRunSIProvider.java?root=Tools_Project&r1=1.22&r2=1.23
Comment 7 Chris Recoskie CLA 2010-10-28 14:53:44 EDT
Created attachment 181981 [details]
fix for version numbers on cdt_7_0
Comment 8 CDT Genie CLA 2010-10-28 15:23:06 EDT
*** cdt cvs genie on behalf of crecoskie ***
Bug 328250 - CommonBuilder should use EFSExtensionManager to determine build working directory
Fix the version numbers.

[*] MANIFEST.MF 1.15.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF?root=Tools_Project&r1=1.15&r2=1.15.2.1

[*] MANIFEST.MF 1.22.2.2 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt/all/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF?root=Tools_Project&r1=1.22.2.1&r2=1.22.2.2