[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