[IGSTK-Developers] IGSTK main library-sandbox cross build system

Andinet Enquobahrie andinet.enqu at kitware.com
Fri Jan 13 21:39:35 EST 2006


Hi Stephen,

Thank you for your comments...

> Some ideas:
> 1) The IGSTK subdir in the sandbox should replicate the directory 
> structure of IGSTK.  That is, the sandbox/IGSTK dir should not be a 
> flat directory just in case the same filename is used in different 
> IGSTK subdirs.

If I am not wrong, the bug fixes and feature adds are implemented only 
in the source and header files in the IGSTK/Source subdirectory. Hence, 
we won't have a file name collision problem.

>
> 2) With this process - do we need the rest of the sandbox?   Couldn't 
> the entire sandbox be put into the sandbox/IGSTK subdir.   Then code 
> review would just go thru the files in the sandbox/IGSTK subdir.
>
>
I take it when you say the "entire sandbox", you are referring to the 
files in Sandbox/Source subdirectory ( We have also Example applications 
in the Sandbox). This can be done.  I just thought that keeping them 
separate would be cleaner and also CMake can easily decide whether it 
will need to generate a new IGSTK library  or not by just checking if 
there are any files in the IGSTK subdirectory.  If there are no files in 
the subdirectory, already-built IGSTK lib will be linked to the Sandbox 
library.

-Andinet

>
> Andinet Enquobahrie wrote:
>
>> Folks,
>>
>> On the tcon yesterday, we discussed the need for IGSTK main 
>> library-sandbox cross build system which accomodates changes to the 
>> main library.
>> The main motivations behind such a build system are
>>
>>  1. Expedite development and testing of new classes in the sandbox  
>> which require minor (light-weight) modification of the main library
>>  2. Enforce minor changes in the main library to pass through the 
>> regular review process
>>
>> To implement this scheme, we will be using cmake language capability. 
>> The envisaged implementation is as follows
>>
>>  1. IGSTK subdirectory will be created in the Sandbox
>>  2. The developer who is interested in making minor modifications to 
>> a  particular file in the main library, will make a copy this file to
>>     the IGSTK subdirectory.
>>  3. CMake file in the sandbox is modified so that
>>        3.1  The build system checks if there are any files in the 
>> IGSTK  sub-directory.
>>        3.2. If there are files in the IGSTK subdirectory, a new IGSTK 
>> library will be generated. To generate this new IGSTK main library
>>              3.2.1. All source files in the main library except the 
>> ones with new versions in the IGSTK subdirectory of the Sandbox and 
>> source files in the IGSTK subdirectory are
>>                        used.
>>              3.2.2. If modified header files exist in the IGSTK 
>> subdirectory of the sandbox, then these modified header are included 
>> before the header files in the
>>                        main library during compilation.
>>        3.3  If there are no files in the IGSTK subdirectory, the 
>> already-built IGSTK library will be used.
>>
>> How does this cross-build system affect bug fix process?
>>
>> If bug fixes are made on files that are not currently in the IGSTK 
>> subdirectory, then there will not be a change in the process. 
>> However, if bug fixes are made on files that are
>> currently in the IGSTK subdirectory, then the developer who fixs bugs 
>> in the main library is responsible to make the corresponding changes 
>> to the version in the IGSTK
>> subdirectory of the Sandbox.
>>
>> How does this cross-build system affect code review process?
>>
>> During our regular code review process for release, the new version 
>> of the IGSTK main library programs stored in the IGSTK subdirectory 
>> will be reviewed in addition to
>> the new files in the sandbox.
>>
>> Please, let me have your comments.
>>
>> Thanks
>>
>> -Andinet
>>
>> PS: By the way, I have posted this message in its entirety to the 
>> wiki...
>>
>> http://public.kitware.com/IGSTKWIKI/index.php/Main_library-sandbox_cross-build_system 
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> IGSTK-Developers mailing list
>> IGSTK-Developers at public.kitware.com
>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>
>





More information about the IGSTK-Developers mailing list