[sldev] [VWR] Switch to cmake?

Dzonatas dzonatas at dzonux.net
Fri Oct 19 09:22:32 PDT 2007


Bill Hoffman wrote:
> Dzonatas wrote:
>> Bill Hoffman wrote:
>>> That was the exact reason CMake was created.  To automate the "busy 
>>> work".
>>
>> Hi Bill.  Have you tried to do a full compile of SL with Express? I 
>> know it compiles, but after I do a small change and re-compile it 
>> forces a complete build of all files again. I know CMake would 
>> generate project files, and that would seem not to work for Express 
>> users from what I found. Someone mentioned CMake had an automake like 
>> option instead of project files for Windows, but how does that work 
>> flow?
>>
>
> OK, I am a bit lost here...   I have not built SL at all.  What do you 
> mean by Express?   I am not sure what you mean by automake like 
> options either. CMake can generate nmake and gmake files on windows as 
> well as the IDE project files.  I currently use gmake with the MS VS 
> 2005 compiler, and make -j2 for a dual core processor.  Is that what 
> you are asking?

Express is the free version of MSVS, but the IDE is limited. It gives 
full compiler ability from the command line, however.

The dependencies can be a major pain in a large project if it is not 
automated in some way. I'm not positive if nmake/gmake can handle the 
complexity of them. I'm curious to know how CMake tracks changes and 
regenerates dependencies based on them.

>
>> Does it also do staged builds? We compile all the external libraries, 
>> build the directory structures, and then compile all of SL itself, 
>> then create an installation package (InstallJammer).
>
> It could be made to do staged builds.  The external libraries could be 
> made to be a separate project, and SL could be a project that uses 
> that project, much like my small VTK example.  CMake supports creation 
> of installer stuff as well.  We currently support NSIS installer, 
> Debian packages, RPMs, cygwin packages, zip files, tar.gz files, and 
> self extracting tar.gz files.
>

For example, if there is a small change made in the one of the external 
library sources, does CMake know how to regenerate only related 
dependencies throughout the entire build and all projects? It can be 
very costly to develop or improve the source (even external library 
source) if a small change makes the build do more than it should. It is 
a concern.

Those with superfast compile farms probably don't see it as much of a 
concern because the compile farm has been the answer to solve it.

-- 
Power to Change the Void


More information about the SLDev mailing list