Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Remote enabling auto tools

Not sure if it's the same as PayPal, but I have some teams using an rsync/ssh approach for remote C++ builds in Eclipse.  Projects are generated on unix with an embedded auto-builder that invokes rsync on each save.  The build command runs a make wrapper that fixes up paths and other quirks over ssh.  It's surprisingly seamless for a duct-tape solution.

Coincidentally, I have also done remote debugging with CDT via gdb invoked under ssh instead of gdbserver (uncooperative security policy).  It's a little awkward, I had to hack up a way to forward the process interrupt etc, but it worked well as a fully functional remote edit/build/debug environment.

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Doug Schaefer
Sent: Monday, March 24, 2014 4:35 PM
To: CDT General developers list.
Subject: EXTERNAL: Re: [cdt-dev] Remote enabling auto tools

Speaking of remote, what did you guys think of PayPal's strategy of using rsync and ssh for dealing with remote projects? Builds are fully done on the remote machine and rsync is used to sync the two together. Seems pretty obvious now that I look at it.

Doug.
________________________________________
From: cdt-dev-bounces@xxxxxxxxxxx [cdt-dev-bounces@xxxxxxxxxxx] on behalf of Jeff Johnston [jjohnstn@xxxxxxxxxx]
Sent: Monday, March 24, 2014 4:23 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Remote enabling auto tools

Looks good.  I will start looking at making the changes on the Autotools side other than changing to the new CommandLauncher.

-- Jeff J.

----- Original Message -----
> From: "Greg Watson" <g.watson@xxxxxxxxxxxx>
> To: "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
> Sent: Friday, March 21, 2014 5:59:57 PM
> Subject: [cdt-dev] Remote enabling auto tools
>
> Jeff,
>
> Here's a summary of what I think needs to happen to make this work:
>
> 1. AutotoolsNewProjectNature#getBuildCommandsList() needs to check for 
> a synchronized project builder (ID:
> org.eclipse.ptp.rdt.sync.cdt.core.SyncBuilder) in addition to the CDT 
> managed project builder.
>
> 2. PTP to provide a drop-in replacement for CommandLauncher that uses 
> the project to determine if the command should be launched locally or remotely.
>
> 3. Autotools needs to refresh the project after creating the build 
> directory, but prior to starting the build, so that in the case of 
> synchronized projects, the build directory is replicated on the 
> target. This should possibly be done in 
> AutotoolsNewMakeGenerator#regenerateMakefiles(). The following code should achieve this:
>
>       IRemoteResource remRes =
>       (IRemoteResource)getProjectI().getAdapter(IRemoteResource.class);
>       if (remRes != null) {
>               remRes.refresh(progressMonitor);
>       }
>
> 4. AutotoolsNewMakeGenerator#getPathString() checks to see if the 
> local machine is Windows. This needs to be modified to use something 
> along the following lines:
>
> private String getOSName() {
>       IRemoteResource remRes =
>       (IRemoteResource)getProject().getAdapter(IRemoteResource.class);
>       if (remRes != null) {
>               URI uri = remRes.getActiveLocationURI();
>               IRemoteServices remServices = RemoteServices.getRemoteServices(uri);
>               if (remServices != null) {
>                       IRemoteConnection conn =
>                       remServices.getConnectionManager().getConnection(uri);
>                       if (conn != null) {
>                               return conn.getProperty(IRemoteConnection.OS_NAME_PROPERTY);
>                       }
>               }
>       }
>       return Platform.getOS();
> }
>
> I don't think the build environment will be an issue, but that's 
> something we can check later.
>
> Let me know if you think of anything else.
>
> Regards,
> Greg
>
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top