[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