View Issue Details

IDProjectCategoryView StatusLast Update
0002034Slicer4Core: Extensionspublic2012-10-25 14:16
Reporterjcfr Assigned Togregsharp  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.2.0Fixed in VersionSlicer 4.2.0 
Summary0002034: Integrate Plastimatch extensions
Description

Greg - May 14th, 2012:
It will take some time to review your patch, because it seems to break
things like OpenMP, Cuda, etc. Which changes are urgently recommended?

TagsNo tags attached.

Relationships

related to 0002152 closedjcfr Add support for svnusername/svnpassword 
related to 0002222 closedjcfr Dependant extensions get the _DIR variable from the ones it depends on 
related to 0002407 closedjcfr Extensions that depend upon extensions 

Activities

2012-05-16 09:52

 

patch2.diff (12,507 bytes)
patch2.diff (12,507 bytes)

2012-05-16 09:52

 

patch3.diff (23,960 bytes)
patch3.diff (23,960 bytes)
finetjul

finetjul

2012-05-16 09:54

administrator   ~0004436

Last edited: 2012-05-16 10:08

Greg: no patch is more urgent than the other. It just simplifies our work on Plastimatch by not having too many local changes.
Jc: Plastimatch is still not working because Plastimatch CLIs depend on a plastimatch.dll library

jcfr

jcfr

2012-05-28 21:40

administrator   ~0004658

Reminder sent to: gregsharp

Hi Greg, what's the status? Did yo have chance to integrate the patch of Julien ?

Ideally, we would like to integrate the plastimatch extension with the coming 4.1.1 (June 1st) tweak release.

gregsharp

gregsharp

2012-05-29 05:09

developer   ~0004670

Hi Jc,

I think I mentioned in previous emails that the patch isn't acceptable. It breaks CUDA and OpenMP, and there is no description of the problem that it is supposed to fix.

Plastimatch builds fine for me using the out-of-directory build method. It would be really helpful if you could tell me the build procedure that you use to make the extensions. Then I can reproduce your problem and make a patch.

If that is not possible, maybe you can paste in your error messages?

Thanks!
Greg

gregsharp

gregsharp

2012-05-29 05:53

developer   ~0004672

Last edited: 2012-05-29 06:19

Hi again,

I just saw the comment about DLL. Sorry, I missed that.

Is it sufficient to add an install target to the lib/Slicer-4.1/cli-modules and lib/Slicer-4.1/qt-loadable-modules directories?

Edit: I just submitted a patch which does this.

-Greg

jcfr

jcfr

2012-05-29 10:51

administrator   ~0004686

Hi Greg,

Since I didn't work on Plastimatch myself (Julien did), I am sure he will be able to provide more comments.

I would recommend the following approach:
1) apply the patch provided by Julien
2) improve the CMake code so that Cuda/OpenMP are either optional or build within the extension using ExternalProjects. You could probably have a look at the example of SuperbuildExtension. See [1]

Hth
Jc

[1] https://github.com/Slicer/Slicer/tree/master/Extensions/Testing/SuperBuildLoadableExtensionTemplate

gregsharp

gregsharp

2012-05-31 15:51

developer   ~0004719

Hi, Thank you very much for your suggestion on Tuesday Jc.

I performed the following procedure on win32 platform:

(1) Configure plastimatch with -DSlicer_DIR option.
(2) Build solution with release target.
(3) Build PACKAGE target.
(4) Unzip the resulting zip file.
(5) Start slicer 4.
(6) Add cli-modules subdirectory as unzipped as an extra module path.
(7) Restart slicer.

Plastimatch module appears in the list. I did only superficial testing after that, but because the GUI is created correctly, it seems that slicer can find the DLLs OK.

Greg

jcfr

jcfr

2012-05-31 16:11

administrator   ~0004720

Last edited: 2012-05-31 16:11

That's a good news:)

If you provide me with a path to the source (URL and revision), I could build and verify on my side. If everything works as expected, I could add the extension to 4.1.1 release.

gregsharp

gregsharp

2012-06-01 06:53

developer   ~0004725

Hi, I just tested on linux, using the same procedure, and got a good result as well. :)

Here are scm download info. Revision can be HEAD, or if you recommend fixing a numeric revision, please use current HEAD which is 3607.

scm svn
scmurl http://forge.abcd.harvard.edu/svn/plastimatch/plastimatch/trunk

I tested building from s4ext, but it does not currently work for me. My repository requires username "anonymous", password is "". In Slicer 3 we used the following s3ext tags:

svnusername anonymous
svnpassword ""

I briefly looked at the Slicer 4 build scripts, and couldn't find a way to send the username and password. Is my understanding correct? If so, here are two ideas for fixing this:

(1) I can make a tarball instead of using svn
(2) I can provide a patch to SlicerFunctionExtractExtensionDescription.cmake and SlicerBlockBuildPackageAndUploadExtensions.cmake to send SVN_USERNAME/SVN_PASSWORD atoms to ExternalProject_Add()

Thanks!
Greg

jcfr

jcfr

2012-06-01 07:20

administrator   ~0004726

Excellent :)

Good point. svnusername/svnpassword are not supported. Would be happy to review a patch. Ideally, would be great to get the patch before the end of afternoon so that it can be integrated in the final 4.1.1 release.

gregsharp

gregsharp

2012-06-01 07:40

developer   ~0004729

OK... probably not possible today, but still I will send the patch asap.

If we can get something into 4.1.1 that would be great, so I can demonstrate at the AAPM user group meeting.

Should I prepare the tarball instead?

jcfr

jcfr

2012-06-01 07:47

administrator   ~0004730

Will try to get a patch in. Will keep you posted of my progress.

The extension build system doesn't yet support url to tarball.

2012-06-01 08:28

 

jcfr

jcfr

2012-06-01 08:29

administrator   ~0004732

Greg, could apply patch: find-package-Git-correct-case.patch

It basically change line 82 of FindSlicer.cmake from:

find_package (git)

to

find_package (Git)

gregsharp

gregsharp

2012-06-01 09:57

developer   ~0004743

Aha! Patched in revision 3608.

jcfr

jcfr

2012-06-01 10:18

administrator   ~0004745

Last edited: 2012-06-01 10:21

Few remarks:
1) Support for svnpassword/svnusername has been added: See http://www.na-mic.org/Bug/view.php?id=2152#bugnotes

2) I created a working example of extension description file for plastimatch: https://gist.github.com/2854051

3) Would be great to review the description file and:

  • add url to an 128x128 pixels icon.
  • add one or more url to screenshots
  • check if the contributor(s) / organization(s) I listed are valid

Assuming you are logged in on github, you should be able to edit the file in place.

2012-06-01 12:31

 

jcfr

jcfr

2012-06-01 12:36

administrator   ~0004751

There are no category associated with the plastimatch loadable module. You should update the file qSlicerPlmSlicerBsplineModule.cxx.
See http://slicer.org/doc/html/classqSlicerAbstractCoreModule.html#ad60347317d4aa65f7739a76489d08841

Make also sure to properly implement the acknowledgementText and helpText methods ...

jcfr

jcfr

2012-08-22 13:21

administrator   ~0005732

Greg, let me know if you need anything else from me. Thanks

jcfr

jcfr

2012-10-23 13:07

administrator   ~0006705

Is that now done through the SlicerRT extension ?

gregsharp

gregsharp

2012-10-25 09:13

developer   ~0006744

Hi Jc, yes, we are working toward delivering plastimatch together with SlicerRt extension.

We seem to be almost finished. It should be ready for Slicer 4.2 release.

-Greg

jcfr

jcfr

2012-10-25 09:22

administrator   ~0006745

Excellent. Thanks for the update

jcfr

jcfr

2012-10-25 14:16

administrator   ~0006787

Considering Plastimatch is being integrated in SlicerRT extension, direct integration of Plastimatch within Slicer as an extension doesn't apply anymore. For that reason, I am resolving the issue.

Issue History

Date Modified Username Field Change
2012-05-14 07:55 jcfr New Issue
2012-05-14 07:55 jcfr Status new => assigned
2012-05-14 07:55 jcfr Assigned To => jcfr
2012-05-14 07:55 jcfr Reporter jcfr => gregsharp
2012-05-14 07:55 jcfr Assigned To jcfr => finetjul
2012-05-14 07:55 jcfr Target Version => Slicer 4.2.0 AHM Summer 2012
2012-05-16 09:52 finetjul File Added: patch2.diff
2012-05-16 09:52 finetjul File Added: patch3.diff
2012-05-16 09:54 finetjul Note Added: 0004436
2012-05-16 09:54 finetjul Assigned To finetjul => jcfr
2012-05-16 09:59 jcfr Target Version Slicer 4.2.0 AHM Summer 2012 => Slicer 4.1.1
2012-05-16 10:08 finetjul Note Edited: 0004436
2012-05-28 21:40 jcfr Note Added: 0004658
2012-05-28 21:41 jcfr Status assigned => feedback
2012-05-29 05:09 gregsharp Note Added: 0004670
2012-05-29 05:53 gregsharp Note Added: 0004672
2012-05-29 06:19 gregsharp Note Edited: 0004672
2012-05-29 10:51 jcfr Note Added: 0004686
2012-05-30 12:54 jcfr Target Version Slicer 4.1.1 - June 1st 2012 => Slicer 4.2.0 - Sept 1st 2012
2012-05-31 15:51 gregsharp Note Added: 0004719
2012-05-31 16:11 jcfr Note Added: 0004720
2012-05-31 16:11 jcfr Note Edited: 0004720
2012-06-01 06:53 gregsharp Note Added: 0004725
2012-06-01 07:20 jcfr Note Added: 0004726
2012-06-01 07:40 gregsharp Note Added: 0004729
2012-06-01 07:47 jcfr Note Added: 0004730
2012-06-01 08:28 jcfr File Added: find-package-Git-correct-case.patch
2012-06-01 08:29 jcfr Note Added: 0004732
2012-06-01 09:23 jcfr Relationship added related to 0002152
2012-06-01 09:57 gregsharp Note Added: 0004743
2012-06-01 10:18 jcfr Note Added: 0004745
2012-06-01 10:21 jcfr Note Edited: 0004745
2012-06-01 12:31 jcfr File Added: plastimatch_loadable_module_category.png
2012-06-01 12:36 jcfr Note Added: 0004751
2012-08-22 13:21 jcfr Status feedback => assigned
2012-08-22 13:21 jcfr Assigned To jcfr => gregsharp
2012-08-22 13:21 jcfr Reporter gregsharp => jcfr
2012-08-22 13:21 jcfr Note Added: 0005732
2012-08-22 13:21 jcfr Relationship added related to 0002222
2012-08-22 13:22 jcfr Relationship added related to 0002407
2012-10-23 13:07 jcfr Note Added: 0006705
2012-10-23 13:07 jcfr Status assigned => feedback
2012-10-25 09:13 gregsharp Note Added: 0006744
2012-10-25 09:22 jcfr Note Added: 0006745
2012-10-25 09:22 jcfr Status feedback => assigned
2012-10-25 14:16 jcfr Note Added: 0006787
2012-10-25 14:16 jcfr Status assigned => closed
2012-10-25 14:16 jcfr Resolution open => fixed
2012-10-25 14:16 jcfr Fixed in Version => Slicer 4.2.0 - coming release