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

Andinet Enquobahrie andinet.enqu at kitware.com
Sat Jan 14 12:21:09 EST 2006


Hi David,

If we decide to merge together the IGSTK and Sandbox libraries into one 
, I agree with you and Stephen that the Sandbox should preferably have a 
skeleton copy of the whole IGSTK directory structure in the Sandbox.

However, you also mentioned that

 > 3. Merges would be easier to accomplish, since each file in the 
Sandbox would have an exactly corresponding location in the >IGSTK 
directory structure.

This is not true for the example applications which are currently only 
in the Sandbox. Probably, we should also start moving these applications 
to the IGSTK directory.

-Andinet
 

>Hi Andinet,
>
>I'm with Stephen.  I added comments similar to his on the Wiki before I read my email this
>morning:
>
>http://public.kitware.com/IGSTKWIKI/index.php/Main_library-sandbox_cross-build_system
>
> - David
>
>
>--- Andinet Enquobahrie <andinet.enqu at kitware.com> wrote:
>
>  
>
>>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
>>>>
>>>>        
>>>>
>>_______________________________________________
>>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