[IGSTK-Developers] New build system

Andinet Enquobahrie andinet.enqu at kitware.com
Fri Jan 20 16:11:39 EST 2006


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