[ITK-dev] ITK API Change (was ITKApps failing after recent commit)

Bill Lorensen bill.lorensen at gmail.com
Tue May 26 11:37:49 EDT 2015


I agree. I will soon have a patch to the ITKApps that works for both
versions of ITK. This will illustrate how much work is required to
support both API's. The current ITK makes itkEventMacro dangerous and
worthless.

On Tue, May 26, 2015 at 11:31 AM, Matt McCormick
<matt.mccormick at kitware.com> wrote:
> Hi Bill,
>
> Thanks for bringing attention to this.  If we cannot find a way for
> external Event code to work without modification, I thing we should
> revert the change before we release 4.8.
>
> 2 cents,
> Matt
>
> On Tue, May 26, 2015 at 11:26 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>> itkEventMacro no longer works the way it used to. Applications that used
>> itkEventMacro(myEvent, itk::UserEvent);
>> must break up the statement into two statements and two files:
>> in the .h file
>> itkEventMacroDeclaration(myEvent,itk::UserEvent);
>> in the .cxx file
>> itkEventMacroDefinition(myEvent,itk::UserEvent);
>>
>> The problems occurs when an application has multiple source files that
>> include the file with itkEventMacro. Duplicate symbols are created
>> now. Prior to the API-break this was fine.
>>
>> Application code that uses itkEventMacro that wants to support ITK
>> pre-the-API-break and post-the-API-break will need further statements.
>>
>> I am working on getting the ITKApps to work with both pre and post
>> API-break versions.
>>
>> The unintended consequences of this API break are troublesome.
>>
>> On Mon, May 25, 2015 at 3:10 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>> itksnap also has issues with the API change. I'll try to make a small
>>> example that illustrates the problem.
>>>
>>>
>>>
>>> On Mon, May 25, 2015 at 12:08 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>> Looks to me that the API for itkEventMacro has changed. This is bad.
>>>> In ITKApps there are several definitions like this. How must these be
>>>> changed?
>>>>
>>>> namespace fltk {
>>>>
>>>> /**
>>>>  *  List of the events expected in this domain
>>>>  */
>>>> itkEventMacro( RedrawEvent,            itk::UserEvent );
>>>> itkEventMacro( GlDrawEvent,            itk::UserEvent );
>>>> itkEventMacro( VolumeReslicedEvent,    itk::UserEvent );
>>>> itkEventMacro( ClippingPlaneEvent,     itk::UserEvent );
>>>>
>>>>
>>>>
>>>> } // end namespace fltk
>>>>
>>>>
>>>> On Mon, May 25, 2015 at 11:59 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>> Since this topic was merged, ITKApps failk to build. I narrowed it
>>>>> down using git commit.
>>>>>
>>>>> http://review.source.kitware.com/#/c/19729/
>>>>>
>>>>> Here is the failing dashboard entry:
>>>>> https://open.cdash.org/viewBuildError.php?buildid=3828894
>>>>>
>>>>> I'll take a lot to see if I can fix it.
>>>>>
>>>>> Bill
>>>>
>>>>
>>>>
>>>> --
>>>> Unpaid intern in BillsBasement at noware dot com
>>>
>>>
>>>
>>> --
>>> Unpaid intern in BillsBasement at noware dot com
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://kitware.com/products/protraining.php
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/insight-developers



-- 
Unpaid intern in BillsBasement at noware dot com


More information about the Insight-developers mailing list