Brad, That is not the problem. The old macro duplicated implementations in each file that included a common .h file. The new api changes that. But, is it important. I think not. The old, less elegant form, worked.
On Tue, May 26, 2015 at 11:44 AM, Bradley Lowekamp <[email protected]> wrote: > > Lets try to keep moving forward. > > The itkEventMacro is not really used in ITK. It should not be hard to revert > it to the old behavior. > > All that is likely needed is to improve the usage of the ITKEvent_EXPORT > define [1]. It looks like the re-write of these macros was only intended for > internal ITK usage as it's defined an ITKCommom_EXPORT. > > Brad > > > > [1] > https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Core/Common/include/itkEventObject.h#L108 > > On May 26, 2015, at 11:37 AM, Bill Lorensen <[email protected]> wrote: > >> 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 >> <[email protected]> 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 <[email protected]> >>> 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 <[email protected]> >>>> 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 <[email protected]> >>>>> 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 >>>>>> <[email protected]> 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 >> _______________________________________________ >> 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 >> _______________________________________________ >> Community mailing list >> [email protected] >> http://public.kitware.com/mailman/listinfo/community > -- 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
