[IGSTK-Developers] New build system

Julien Jomier jjomier at cs.unc.edu
Fri Jan 20 17:10:51 EST 2006


Hi Andinet,

 > With this configuratiion, after building the sandbox for the first
 > time,  you will have a duplicate copies of IGSTK source files  in the
 > IGSTK/Source and Sandbox/IGSTK/Source.  This will make Sandbox-IGSTK
 > merging process difficult.
 >

The duplicate files in Sandbox/IGSTK/Source will be the file to replace 
in IGSTK/Source (same for the tests files), therefore the merging is 
quite simple unless I'm missing something.

Julien

Andinet Enquobahrie wrote:
> Julien Jomier wrote:
> 
>> Andinet,
>>
>> I think I've it working nicely now, I haven't checked it in yet.
>>
>> So here's how it works:
>>
>> There is a Sandbox/IGSTK directory now with a Source and Testing 
>> directories (I haven't done Utilities because I don't think we need it).
>>
>> a) All the source files from IGSTK/Source are copied unless there is a 
>> duplicate in Sandbox/IGSTK/Source. A library named IGSTKLatest is 
>> created from the copied files and the ones in Sandbox/IGSTK/Source.
>>
>> b) A new project is created called igstkLatestTests from the actual 
>> files in the IGSTK/Testing directory (just a link). If a test is 
>> duplicated in Sandbox/IGSTK/Testing then this test is used instead. 
>> This project links indeed with IGSTKLatest instead of the IGSTK library.
>>
>> The sandbox doesn't refer to any main IGSTK libraries or header files 
>> now. This design allows to modify the correct files when debugging.
>>
>> David, Luis, Stephen, please let me know if you think this is an ok 
>> solution. I'll try on linux to see how it goes and check it in if 
>> there is no objection.
>>
> Julien,
> 
> With this configuratiion, after building the sandbox for the first 
> time,  you will have a duplicate copies of IGSTK source files  in the
> IGSTK/Source and Sandbox/IGSTK/Source.  This will make Sandbox-IGSTK 
> merging process difficult.
> In fact, this was one of the reason I created a "SourceLatest" 
> subdirectory in the Sandbox_bin directory to copy and merge modified and 
> non-modified versions of the IGSTK source files and Sandbox source files 
> to build the Sandbox. However, that configuration made the debugging 
> process difficult.
> 
> If nobody else has strong objections, I am ok with your suggestion. The 
> build system should make the debugging process easier. We just have to 
> be careful when we merge  the sandbox and the main library in 
> preparation for a release.
> 
> -Andinet
> 
> 
> 
> 
> 
> 
>>
>> Andinet Enquobahrie wrote:
>>
>>> Hi Julien,
>>>
>>>> We create an IGSTK directory in the sandbox (Sandbox/IGSTK) that 
>>>> copies the file structure of the main IGSTK repository. The idea is 
>>>> to copy all the source from IGSTK to Sanbox-bin (using CMake) except 
>>>> the files that are in Sandbox/IGSTK (and subdirectories). We then 
>>>> compile the IGSTK library inside the sandbox. But there is no 
>>>> duplicate of the files at that point. Do you foresee any issues in 
>>>> doing that?
>>>
>>>
>>> This looks like a better idea...hopefully you wont have a problem 
>>> setting the correct include directory path. Give it a shot and let us 
>>> know if it solves your problem..
>>>
>>> thanks,
>>>
>>> -Andinet
>>>
>>>
>>>
>>>
>>>
>>>>
>>>>
>>>>
>>>> Andinet Enquobahrie wrote:
>>>>
>>>>>> Let me see if I understand correctly what we are trying to do.
>>>>>> We want to make sure that we have enough flexibility to modify the 
>>>>>> main IGSTK source code, so basically what we need to do in the 
>>>>>> Sandbox is to create a new IGSTK library (not using the main one) 
>>>>>> with some possible modified files.
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> I agree with the proposed solution to copy files from the main 
>>>>>> IGSTK source directory into the Sandbox binary directory and 
>>>>>> replace with possible duplicate files that are in Sandbox. Using 
>>>>>> this approach David is right and the compiler will refer to the 
>>>>>> copied files but only for the main IGSTK files and not the sandbox 
>>>>>> (that's the problem I'm having right now).
>>>>>
>>>>>
>>>>>
>>>>> Oh..ok...your problem is with the ones in the Sandbox...here is 
>>>>> what you can do...
>>>>>
>>>>> After modifying the file in the sandbox,  all you need to do is
>>>>>
>>>>> make depend
>>>>>
>>>>> the copy of the file in the binary directory will be automatically 
>>>>> updated (at least I hope :)... Give it a shot and let me know if it 
>>>>> works
>>>>>
>>>>> -Andinet
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Let me know if I'm missing something,
>>>>>>
>>>>>> Julien
>>>>>>
>>>>>> Andinet Enquobahrie wrote:
>>>>>>
>>>>>>> Julien Jomier wrote:
>>>>>>>
>>>>>>>> Andinet,
>>>>>>>>
>>>>>>>> I'm trying the new build system and there is a major drawback to 
>>>>>>>> it. Using Visual Studio, when the compiler finds an error it 
>>>>>>>> reports to the newly created files in the binary directory and 
>>>>>>>> not the actual files in the source directory. Therefore 
>>>>>>>> debugging is a pain.
>>>>>>>>
>>>>>>>> I think you are copying the file just to merge the tests. Maybe 
>>>>>>>> we can keep them separated...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Julien,
>>>>>>>
>>>>>>> Yes, I understand the pain. We knew about this issue while 
>>>>>>> agreeing on this build system.. In fact, here is what David wrote 
>>>>>>> about it ....
>>>>>>>
>>>>>>>> The big issue is that debuggers would find the copies of the 
>>>>>>>> files, not the originals, and
>>>>>>>> developers would have to be aware of that fact.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> We had to settle on this solution just because it was better than 
>>>>>>> the other suggested ideas. Please, refer to the email exchanges 
>>>>>>> on this matter for the suggested ideas...
>>>>>>>
>>>>>>> I am open to other solutions...Let me know if you think of one...
>>>>>>>
>>>>>>>
>>>>>>> -Andinet
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Julien
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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