[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