Difference between revisions of "2013 Project Week:ITKv4Default"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(18 intermediate revisions by 3 users not shown)
Line 7: Line 7:
 
==Key Investigators==
 
==Key Investigators==
  
 +
* Kitware: Jean-Christophe Fillion-Robin
 +
* Kitware: Luis Ibanez
 +
* U of Iowa: Hans Johnson
 +
* BWH: Ron Kikinis
 +
* Bill's Basement: Bill Lorensen
 +
* Isomics: Steve Pieper
 +
* NLM: Bradley Lowekamp
 
* Kitware: Matt McCormick
 
* Kitware: Matt McCormick
* Kitware: Luis Ibanez
+
* Queen's: Csaba Pinter
 +
* NLM: Terry Yoo
  
 
==Project Description==
 
==Project Description==
Line 22: Line 30:
 
* Get Slicer-ITKv4 dashboard build working.
 
* Get Slicer-ITKv4 dashboard build working.
 
* Test packaging on all platforms.
 
* Test packaging on all platforms.
* Address the Issue [http://www.na-mic.org/Bug/view.php?id=2727 #2727]
 
 
* Address the Issue [http://www.na-mic.org/Bug/view.php?id=2813 #2813]
 
* Address the Issue [http://www.na-mic.org/Bug/view.php?id=2813 #2813]
 
</div>
 
</div>
Line 28: Line 35:
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h3>Progress</h3>
 
<h3>Progress</h3>
 
+
* DCMTK updated to latest version to fix link errors
 +
* Linking errors fixed
 +
* Verified Windows Runs/Loads Files/Number of ImageIO factories registered: 20
 +
* (Wednesday Jan 9th) Built, Packed and Installed in Windows 64bits and 32bits using Visual Studio 2008
 +
** Took advantage of ITKv4 modularization to use only Slicer needed modules form ITK.
 +
** Patched tclap lib for std::min due to Visual Studio min macro.
 +
** Using top directory of 4 characters (e.g.  Binary Dir = C:\S43R, Source Dir = C:\Users\abcdef\src\Slicer43)
 +
* CLI ImageIO factory registration fixed on Windows
 +
* DWIConvert working on Windows
 +
* ITKv4 related commits have been squashed, tweaked and reviewed so that they could be integrated into Slicer trunk. See https://github.com/jcfr/Slicer/compare/next-itkv4-20130110
 +
</div>
 
</div>
 
</div>
  
 
== Work in Progress ==
 
== Work in Progress ==
 +
  
 
=== Blockers ===
 
=== Blockers ===
Line 45: Line 63:
  
 
* Using this branch: https://github.com/BRAINSia/Slicer43/tree/20130107-next-slicer43
 
* Using this branch: https://github.com/BRAINSia/Slicer43/tree/20130107-next-slicer43
* Migration Plan at Slicer Wiki: http://www.slicer.org/slicerWiki/index.php/ITKv4_Migration_plan
+
* Migration Plan at Slicer Wiki: https://www.slicer.org/wiki/ITKv4_Migration_plan
  
 
=== Windows 7, VS 2008, x64, Qt 8.2 Release build ===
 
=== Windows 7, VS 2008, x64, Qt 8.2 Release build ===
Line 54: Line 72:
  
 
https://dl.dropbox.com/u/1686930/itkv4builds/build2after%20update.txt
 
https://dl.dropbox.com/u/1686930/itkv4builds/build2after%20update.txt
 +
 +
Patch for InterlockedIncrement build error:
 +
<pre>
 +
diff --git a/ofstd/include/dcmtk/ofstd/ofmem.h b/ofstd/include/dcmtk/ofstd/ofmem.h
 +
index 473b9c8..94bb937 100644
 +
--- a/ofstd/include/dcmtk/ofstd/ofmem.h
 +
+++ b/ofstd/include/dcmtk/ofstd/ofmem.h
 +
@@ -226,7 +226,11 @@ private:
 +
 +
    private:
 +
        /// The counter.
 +
+#ifdef HAVE_INTERLOCKED_INCREMENT
 +
+        volatile LONG m_Count;
 +
+#else
 +
        size_t m_Count;
 +
+#endif
 +
        /// The pointer to the managed object.
 +
        T* const m_pT;
 +
#ifdef OF_SHARED_PTR_NEED_MUTEX
 +
</pre>
 +
 +
 +
Patch for tclap issue with std::min
 +
 +
<pre>
 +
diff --git a/tclap/include/tclap/StdOutput.h b/tclap/include/tclap/StdOutput.h
 +
index 2748b9e..229b934 100644
 +
--- a/tclap/include/tclap/StdOutput.h
 +
+++ b/tclap/include/tclap/StdOutput.h
 +
@@ -33,6 +33,12 @@
 +
#include <tclap/XorHandler.h>
 +
#include <tclap/Arg.h>
 +
 +
+// Conditionally undefine the min macro that Visual Studio defines.
 +
+#ifdef min
 +
+#undef min
 +
+#endif
 +
+
 +
+
 +
namespace TCLAP {
 +
 +
</pre>
  
 
== Results ==
 
== Results ==

Latest revision as of 18:07, 10 July 2017

Home < 2013 Project Week:ITKv4Default

Key Investigators

  • Kitware: Jean-Christophe Fillion-Robin
  • Kitware: Luis Ibanez
  • U of Iowa: Hans Johnson
  • BWH: Ron Kikinis
  • Bill's Basement: Bill Lorensen
  • Isomics: Steve Pieper
  • NLM: Bradley Lowekamp
  • Kitware: Matt McCormick
  • Queen's: Csaba Pinter
  • NLM: Terry Yoo

Project Description

Objective

  • Switch Slicer to use ITKv4 by default.

Approach, Plan

  • Get Slicer-ITKv4 dashboard build working.
  • Test packaging on all platforms.
  • Address the Issue #2813

Progress

  • DCMTK updated to latest version to fix link errors
  • Linking errors fixed
  • Verified Windows Runs/Loads Files/Number of ImageIO factories registered: 20
  • (Wednesday Jan 9th) Built, Packed and Installed in Windows 64bits and 32bits using Visual Studio 2008
    • Took advantage of ITKv4 modularization to use only Slicer needed modules form ITK.
    • Patched tclap lib for std::min due to Visual Studio min macro.
    • Using top directory of 4 characters (e.g. Binary Dir = C:\S43R, Source Dir = C:\Users\abcdef\src\Slicer43)
  • CLI ImageIO factory registration fixed on Windows
  • DWIConvert working on Windows
  • ITKv4 related commits have been squashed, tweaked and reviewed so that they could be integrated into Slicer trunk. See https://github.com/jcfr/Slicer/compare/next-itkv4-20130110

Work in Progress

Blockers

Windows

  • IO Factory registration
    • In CLIs
    • In main Slicer
  • Packaging

Git Branch to Use

Windows 7, VS 2008, x64, Qt 8.2 Release build

git checkout origin/20130107-next-slicer43

https://dl.dropbox.com/u/1686930/itkv4builds/build1after%20update.txt

https://dl.dropbox.com/u/1686930/itkv4builds/build2after%20update.txt

Patch for InterlockedIncrement build error:

diff --git a/ofstd/include/dcmtk/ofstd/ofmem.h b/ofstd/include/dcmtk/ofstd/ofmem.h
index 473b9c8..94bb937 100644
--- a/ofstd/include/dcmtk/ofstd/ofmem.h
+++ b/ofstd/include/dcmtk/ofstd/ofmem.h
@@ -226,7 +226,11 @@ private:
 
     private:
         /// The counter.
+#ifdef HAVE_INTERLOCKED_INCREMENT
+        volatile LONG m_Count;
+#else
         size_t m_Count;
+#endif
         /// The pointer to the managed object.
         T* const m_pT;
 #ifdef OF_SHARED_PTR_NEED_MUTEX


Patch for tclap issue with std::min

diff --git a/tclap/include/tclap/StdOutput.h b/tclap/include/tclap/StdOutput.h
index 2748b9e..229b934 100644
--- a/tclap/include/tclap/StdOutput.h
+++ b/tclap/include/tclap/StdOutput.h
@@ -33,6 +33,12 @@
 #include <tclap/XorHandler.h>
 #include <tclap/Arg.h>
 
+// Conditionally undefine the min macro that Visual Studio defines.
+#ifdef min
+#undef min
+#endif
+
+
 namespace TCLAP {

Results