Distributed build environment?

Post questions, comments and feedback to our 3Dconnexion Windows Development Team.

Moderator: Moderators

Post Reply
neil_at_informatix
Posts: 6
Joined: Wed Apr 23, 2008 1:48 am
Location: Cambridge UK

Distributed build environment?

Post by neil_at_informatix »

The sample code to build against the COM control uses #import of an installed driver DLL, located via the Windows Registry (so must be installed.

This only works on a machine which has the 3Dx driver installed... It does not easily support a SVN repository with branches and labelled code points...

How can I properly set up a distributed build environment, where each developer has their own PC and checks out a copy of code from SVN, and builds their private copy, and also there is a headless server environment where "standard" builds are performed in a clean environment.

I need to avoid reliance on every machine having the correct (ie same!!!) driver installed, or even any driver installed. (Note that the majority of build machines do not have a SpacePilot attached, esp. not the headless servers...)

Currently I have hacked the build by taking the .TLH and .TLI files produced by MSDev, and replacing the #import by a #include of the TLH.

Since a COM Interface is supposed to be fixed over time, this ought to work - but is there an approved method?
Creo Imaginem Mente
ngomes
Moderator
Moderator
Posts: 3344
Joined: Mon Nov 27, 2006 7:22 am
Contact:

Post by ngomes »

Hi neil_at_informatix,

The method you described (keep a copy of the TLH) is fine but -- we agree -- not ideal.

I suggest you keep the type library under revision control. You can do this by importing the TDxInput.dll file into a "vendor" folder in your svn repository. You need need to edit the #import line to point to that file.
Nuno Gomes
neil_at_informatix
Posts: 6
Joined: Wed Apr 23, 2008 1:48 am
Location: Cambridge UK

Post by neil_at_informatix »

Thanks Nuno,
I will do that.

I won't add the DLL to output, just make it available to the compilation. Built targets will still match their CoCreateInstance to the installed DLL (if any) on the runtime machine.
Creo Imaginem Mente
Post Reply