1. 11 Jan, 2013 1 commit
    • jcfr's avatar
      COMP: Add ITKFactoryRegistration library centralizing ITK IO factory registration · 03b89614
      jcfr authored
      This commit will ensure that ITK IO factory are properly registered on all
      supported platforms.
      
      When ITKv4 is build shared, the library holding the factory registration code
      are build statically. As a consequence, when CLI module are loaded as library
      the factory are registered multiple times. Around 800 factories where registered
      and this was leading to poor performance when loading images.
      
      This commit enable the building of a shared library named ITKFactoryRegistration
      that should be linked against to ensure loading of the factory. This approach
      can succeed thanks to the help of the ITK variable ITK_NO_IO_FACTORY_REGISTER_MANAGER.
      
      This variable allow to disable the automatic registration of factory in selected part
      of the code.
      
      The following two cases are handled:
       - Registration of the factories within the Slicer executable.
       - Registration of the factories within CLI executable.
      
      Fixes #2813
      
      From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@21592 3bd1e089-480b-0410-8dfb-8563597acbee
      03b89614
  2. 31 Dec, 2012 1 commit
  3. 06 Dec, 2012 1 commit
    • jcfr's avatar
      ENH: Support per user per revision extensions settings · e6fb116c
      jcfr authored
      There is now a clear distinction between:
       - userSettings -> i.e. ~/.config/NA-MIC/Slicer.ini
       - revisionUserSettings -> i.e. ~/.config/NA-MIC/Slicer-<revision>.ini
      
      The following slicer settings are now revision specific:
       - Extensions/ManagerEnabled
       - Extensions/ServerUrl
       - Extensions/InstallPath
       - Modules/AdditonalPath
       - Modules/IgnoreModules
      
      Additionally, the launcher version has also been updated to be able to
      consider settings associated with a user, application and revision. This is
      captured by the new parameter APPLICATION_REVISION, ORGANIZATION_DOMAIN,
      ORGANIZATION_NAME and USER_ADDITIONAL_SETTINGS_FILEBASENAME passed to the CMake
      function "ctkAppLauncherConfigure".
      
      qSlicerCoreApplication API has also been extended and now includes methods
      like:
        - QSettings* userSettings()  [settings() method is deprecated and kept for backward compatibility]
        - QSettings* revisionUserSettings()
        - QString launcherRevisionUserSettingsFilePath()
        - QString slicerUserSettingsFilePath()
        - QString slicerRevisionUserSettingsFilePath()
      
      In addition to the settings, the extensions install path is also revision
      specific, it means that it's now possible to have multiple version of slicer
      running with different set of extensions.
      
      Fixes #2791, #2143, #2720, #2533
      
      
      Since the version of the launcher is updated, launcher will return EXIT_FAILURE
      also when no application is been set in the launcher settings.
      
      Fixes #2767
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@21482 3bd1e089-480b-0410-8dfb-8563597acbee
      e6fb116c
  4. 28 Sep, 2012 1 commit
  5. 27 Sep, 2012 2 commits
  6. 23 Aug, 2012 1 commit
  7. 19 Jul, 2012 1 commit
  8. 05 Jul, 2012 1 commit
  9. 27 Jun, 2012 1 commit
  10. 22 Jun, 2012 1 commit
    • hjohnson's avatar
      COMP: The compiler options must be propogated · 57a4885a
      hjohnson authored
      Compiler options selected in the main Slicer4
      Superbuild harness needs to be propogated to
      each of the subsequent External_project builds.
      
      This was tested by setting
      export CC=/dev/null
      export CXX=/dev/null
      cmake -DCMAKE_C_COMPILER:PATH=/usr/bin/gcc -DCMAKE_CXX_COMPILER:PATH=/usr/bin/g++
      and then compiling all of Slicer.
      
      Propogate the necessary compiler flags to each
      external package consistently.  Additionally,
      only propogate the flags that are explicitly needed
      for that external project.  In many cases, only the
      C compiler options need to be propogated.
      
      Slicer compiler options needed by Extensions as well.
      The extension need to have the same compiler used
      as the primary Slicer build.
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@20464 3bd1e089-480b-0410-8dfb-8563597acbee
      57a4885a
  11. 18 Jun, 2012 1 commit
  12. 28 May, 2012 1 commit
    • jcfr's avatar
      BUG: Fix extension bundling and simplify mechanism used to specify the main application · abdde218
      jcfr authored
      1) In Applications/SlicerApp/CMakeLists.txt:
      
        Improve comment explaining what should be considered when adding an other
      application into Applications folder.
      
        Given the fact Slicer_APPLICATION_NAME is used locally, minimize confusion
      by renaming variable renaming it into SlicerApp_APPLICATION_NAME.
      
        In case the application being configured is the *Main* application,
      explicitly compare "PROJECT_NAME" with "Slicer_MAIN_PROJECT".
      
      
      2) Rename variable Slicer_APPLICATION_NAME used to identified the main
      application into Slicer_MAIN_PROJECT_APPLICATION_NAME. This will
      minimize confusion and help maintaining the code.
      
      3) Let's note that the mechanism used to fixup application should probably
      be extended to account for other application build in the Applications folder.
      
      4) In top-level CMakeLists, move code specific to main application description
      into its own section.
      
      5) Configure variable "Slicer_MAIN_PROJECT" and "Slicer_MAIN_PROJECT_APPLICATION_NAME"
      into SlicerConfig so that "SlicerExtensionCPackBundleFixup" could successfully
      refer to Slicer_MAIN_PROJECT_APPLICATION_NAME. This closes #2130
      
      See http://www.na-mic.org/Bug/view.php?id=2130
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@20272 3bd1e089-480b-0410-8dfb-8563597acbee
      abdde218
  13. 27 May, 2012 1 commit
    • jcfr's avatar
      COMP: Configuring to use External Data. · 4c1f7612
      jcfr authored
      Patch contributed by Jim Miller
      
      Using mechanisms developed for ITKv4 to store test and baseline data
      on a web resource (Midas or other website).
      
      Data can be referenced using content based hashing scheme.
      
      Still need to configure Extensions to use the Slicer object store.
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@20163 3bd1e089-480b-0410-8dfb-8563597acbee
      4c1f7612
  14. 01 May, 2012 1 commit
    • jcfr's avatar
      BUG: Ensure that QtTesting project is found when building extensions · 9d6056b7
      jcfr authored
      This will fix link issue associated with extension:
      
      //--------
      Scanning dependencies of target ConfigureAdditionalLauncherSettings
      [  4%] Configuring: AdditionalLauncherSettings.ini
      [  4%] Built target ConfigureAdditionalLauncherSettings
      Scanning dependencies of target vtkSlicerLoadableExtensionTemplateModuleLogic
      [  8%] Building CXX object Logic/CMakeFiles/vtkSlicerLoadableExtensionTemplateModuleLogic.dir/vtkSlicerLoadableExtensionTemplateLogic.cxx.o
      c++: --no-undefined: linker input file unused because linking not done
      Linking CXX shared library ../lib/Slicer-4.1/qt-loadable-modules/libvtkSlicerLoadableExtensionTemplateModuleLogic.so
      /usr/bin/ld: cannot find -lQtTesting
      //--------
      
      See http://slicer.cdash.org/viewBuildError.php?buildid=17278
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@19974 3bd1e089-480b-0410-8dfb-8563597acbee
      9d6056b7
  15. 26 Apr, 2012 1 commit
  16. 14 Apr, 2012 1 commit
  17. 12 Apr, 2012 1 commit
  18. 27 Mar, 2012 1 commit
  19. 22 Mar, 2012 1 commit
  20. 21 Mar, 2012 1 commit
  21. 19 Mar, 2012 1 commit
    • jcfr's avatar
      ENH: Extension package are now properly "fixed up" on MacOX · ac842fee
      jcfr authored
      * Disable CMAKE_INSTALL_NAME_TOOL when packaging extension, that way all
      installed library will contain the full path to their direct dependencies provided
      by the extension itself. Doing so will allow the to properly fix all libraries.
      
      * Copy SlicerCompleteBundle.cmake.in into SlicerExtensionCompleteBundle.cmake.in,
      also copy function "get_bundle_keys" and "fixup_bundle" from BundleUtilities.cmake
      and respectively rename them into "get_extension_keys" and "fixup_extension".
      This has been motivated by the fact there is no executable available within the
      "Slicer.app/Contents/MacOS" directory. It means we have to "fake" it by
      commenting the function which was explicitly checking for the existence
      of an executable. For instance, "get_bundle_and_executable" has been commented out.
      The variable "exepath" is now explicitly set within the function "fixup_extension"
      and "get_extension_keys"
      
      * To speed up the "fixup" process, "get_prerequisites" is called with
      "recurse" parameter set to "0".
      
      * Note also that since all the libraries available under the Slicer superbuild
      directory have already been fixed up, the "fixup_extension" function
      check if a given item is located within a sub directory of "Slicer_SUPERBUILD_DIR".
      If it's the case, the item will be skipped.
      
      * The install directory being different within the bundle, the CMake block
      "SlicerBlockUploadExtensionPrerequisites" has been updated to "patch"
      the *MODULES_*_DIR" variable with "Slicer_BUNDLE_EXTENSIONS_LOCATION".
      
      git-svn-id: http://svn.slicer.org/Slicer4/trunk@19644 3bd1e089-480b-0410-8dfb-8563597acbee
      ac842fee
  22. 27 Feb, 2012 1 commit
  23. 06 Feb, 2012 1 commit
  24. 23 Jan, 2012 1 commit
  25. 10 Jan, 2012 1 commit
  26. 20 Dec, 2011 3 commits
  27. 15 Dec, 2011 2 commits
  28. 05 Dec, 2011 1 commit
  29. 06 Sep, 2011 1 commit
  30. 29 Aug, 2011 1 commit
  31. 26 Aug, 2011 6 commits