View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003051 | Slicer4 | Core: Extensions | public | 2013-04-04 14:35 | 2017-06-07 23:27 |
Reporter | fedorov | Assigned To | jcfr | ||
Priority | high | Severity | block | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | Slicer 4.2.2-1 | ||||
Target Version | Slicer 4.3.0 | Fixed in Version | Slicer 4.3.0 | ||
Summary | 0003051: CLI from extensions are not working | ||||
Description | The dependency dylb fails to load. Reproducible with SkullStripper / April 4 nightly on Mac. Error(s): | ||||
Tags | No tags attached. | ||||
This is specific to extension. Regular module are properly fixed up. |
|
Testing the following topic: https://github.com/jcfr/Slicer/commit/3accaddad2a4e4385825b201c4305fd01252e736 |
|
While working on this problem, a ITKv4 issue has been identified and reported: https://issues.itk.org/jira/browse/ITK-3026 This ITK issue doesn't yet affect Slicer but may be a problem when we will be using BundleUtilities to also generate package on Linux. |
|
Toy project allowing to reproduce the problem has been fixed: https://github.com/jcfr/CMakeBundleUtilitiesExample/compare/f7a594ffba72b8cb83df9a166d7887bedc49f38b...75fa538 Will now propose the CMake change to upstream and also test it with Slicer. |
|
what is the status? |
|
CMake topic: http://cmake.org/gitweb?p=stage/cmake.git;a=shortlog;h=refs/heads/tweak-bundleutilities-for-rpath Slicer topic: https://github.com/jcfr/Slicer/compare/Slicer:master...3051-fix-cli-execution Still in the process of testing and tweaking the topic. |
|
Topic that should address the problem is: https://github.com/jcfr/Slicer/compare/3051-fix-cli-execution Considering this is a major change and that I am leaving tomorrow for two weeks, will be integrating the topic when I return. In the mean time, developer could test the topic "3051-fix-cli-execution" by: 1) build and packaging of Slicer 2) build and packaging of extension against the build tree obtain in (1) 3) To an experimental build + upload of the extension index, and check that cli can run as either a shared library or as executable. |
|
Fixed in r22023 |
|
Slicer: 2145-support-for-installing-extension-from-file 178bd4e1 2013-05-17 18:05:19 Details Diff |
BUG: Ensure library can be loaded from different place using @rpath Before this commit, attempt have been made (r18311, r18325, r18581) to install both built-in CLI and extension CLI executable in a folder located at some depth of the main Slicer executable. This was needed because all libraries were referenced based on the location of the main Slicer executable using "@executable_path". This was working *only* in the case of built-in CLI but wasn't scaling very well for the extension CLI executable. Indeed, being able to both differentiate the different installed extension and keeping the depth to 1 level wasn't easily feasible: /path/to/Slicer.app/Contents/MacOS/Slicer /path/to/Slicer.app/Contents/cli-modules/MyCLI /path/to/Slicer.app/Contents/Extensions-21855/SkullStripper/cli-modules/MyCLI A solution could have been to install extensions directly in "Slicer.app" folder and update the cli install sub dir to get something like: /path/to/Slicer.app/Extensions-21855/SkullStripper/MyCLI While possible, it would have remain a special case to maintain. Instead, by using "@rpath", CLI modules can now be installed in the Slicer standard location "Slicer_CLIMODULES_LIB_DIR" instead of "Slicer_CLIMODULES_SUBDIR". This commit remove the special case which never worked (issue 0003051) Waiting the topic "tweak-bundleutilities-for-rpath" is fully matured and integrated in CMake, use custom version of BundleUtilities and GetPrerequisites. See http://cmake.org/gitweb?p=stage/cmake.git;a=shortlog;h=refs/heads/tweak-bundleutilities-for-rpath Since our custom version of the CMake modules now consider "~/usr/.*/lib", the implementation of "gp_resolved_file_type_override" has been removed. Remove the hack specific to LibArchive (introduced by commit r19615), since the library is fixed up using the default library matching pattern, it will be installed in the expected location. SlicerExecutionModel has also been updated to link the CLI executable and library with "-rpath" so that they can resolve the location of Slicer libraries. git-svn-id: http://svn.slicer.org/Slicer4/trunk@22023 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/CMakeLists.txt | Diff File | ||
mod - Base/CLI/CMakeLists.txt | Diff File | ||
mod - Base/QTCLI/qSlicerCLIExecutableModuleFactory.cxx | Diff File | ||
mod - Base/QTCLI/qSlicerCLIModuleFactoryHelper.cxx | Diff File | ||
add - CMake/BundleUtilitiesWithRPath.cmake | Diff File | ||
add - CMake/GetPrerequisitesWithRPath.cmake | Diff File | ||
mod - CMake/SlicerCPack.cmake | Diff File | ||
mod - CMake/SlicerCPackBundleFixup.cmake.in | Diff File | ||
mod - CMake/SlicerExtensionCPack.cmake | Diff File | ||
mod - CMake/SlicerExtensionCPackBundleFixup.cmake.in | Diff File | ||
mod - CMake/UseSlicer.cmake.in | Diff File | ||
mod - CMakeLists.txt | Diff File | ||
mod - SuperBuild/External_SlicerExecutionModel.cmake | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-04-04 14:35 | fedorov | New Issue | |
2013-04-04 14:35 | fedorov | Status | new => assigned |
2013-04-04 14:35 | fedorov | Assigned To | => jcfr |
2013-04-04 15:16 | jcfr | Priority | normal => high |
2013-04-04 15:16 | jcfr | Target Version | => Slicer 4.3.0 |
2013-04-16 10:53 | jcfr | Note Added: 0008410 | |
2013-04-16 15:23 | jcfr | Note Added: 0008417 | |
2013-04-17 15:15 | jcfr | Note Added: 0008432 | |
2013-04-24 14:42 | jcfr | Note Added: 0008486 | |
2013-04-29 04:24 | kikinis | Note Added: 0008531 | |
2013-04-29 06:10 | jcfr | Note Added: 0008532 | |
2013-04-30 21:22 | jcfr | Note Added: 0008545 | |
2013-04-30 21:29 | jcfr | Note Edited: 0008545 | |
2013-05-17 14:17 | jcfr | Note Added: 0008660 | |
2013-05-17 14:17 | jcfr | Status | assigned => resolved |
2013-05-17 14:17 | jcfr | Fixed in Version | => Slicer 4.3.0 |
2013-05-17 14:17 | jcfr | Resolution | open => fixed |
2013-05-25 12:52 | fedorov | Status | resolved => closed |
2013-05-29 17:48 | jcfr | Relationship added | has duplicate 0003043 |
2017-06-07 23:27 | jcfr | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file 178bd4e1 |