Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-dev] Thinking about rsync-before-make hybrid local/remote projects

I wanted to bring this up for discussion. I'm particularly hoping to hear from Chris, Doug, and the other CDT folks on the list. :-)

At several NCSA discussions about PTP, we have discussed the desire for a "hybrid" local/remote project, where the source code is stored and edited in a local project and then rsynced to a remote server and built, executed, and debugged remotely.

I'm trying to figure out how much work it would take to support this in CDT+Photran.

My brainstorm is below. What are the issues I've missed? Can we reuse the remote make builder for this scenario? And does anyone have an idea for how to handle launching, or what the issues with debugging would be?


--- SEARCH FEATURES/HANDLING INCLUDES

The only real problem in the editing and search features, AFAIK, is handling #includes, since the user probably won't have some libraries installed locally. One solution might be allowing the user to specify both local directories and remote directories as include paths.

One option is to copy header files from the include paths on the remote machine into the local project (or rsync them on every build). So, e.g., /MyEclipseProject/.remote-includes/mpi.h would be a local copy of mpi.h from the remote machine. Then the we would just add "/MyEclipseProject/.remote-includes" to the list of include paths, and features like Open Declaration and Search would more or less work correctly. (Maybe?)

If that's too hack-ish for your taste, we could also modify the preprocessor to load files directly from the remote machine, perhaps caching them locally to improve performance. The problem there is that the indexer would then have references to non-local files, so it would have to be modified to distinguish these (e.g., use URIs instead of file paths), and various UI actions (e.g., Open Declaration and Search) would have to be modified to be able to open the remote file in an editor. That seems like an expensive change.

--- BUILD

Then, there's actually doing the rsync and remote make. I would hope that we could basically reuse the existing Remote Make builder for the latter part.

For sync'ing the source, the main points would be:

(1) the user should be able to specify what directory on the remote machine the source should be uploaded (rsync'd) to

(2) the user will probably want to be able to exclude some files (e.g., documentation) from the rsync

--- LAUNCH AND DEBUG

Finally, we would need a way to launch the remote executable. I have no idea how to do this, since there's no file in the local project which can be launched...

Also, I'm not sure how source lookup works (for debugging), although I expect problems here too...


Thanks for any discussion/feedback.

Jeff


Back to the top