Hello,

 

Thank you for the input. I have successfully built and compiled VTK, ITK,
and GDCM with no problems. I can then run cmake on MITK as a superbuild but
then I run into a problem when I try to compile MITK-superbuild.sln. When it
goes to build mitkcore.lib it does not have the path to the gdcmMSFF.lib so
the linker fails which then causes multiple things to fail because
mitkcore.lib is used by everything. So I have spent the last day trying to
figure out where I need to add the GDCM/bin folder so my project will link.
Does anyone know off hand which .cmake file CMakeLists.txt to change. The
additional include directory for mitkcore.lib already includes VTK/bin and
ITK/bin but not GDCM/bin which I am assuming is because ITK depends on GDCM.
So I will keep trying to figure out the exact location but if anyone happens
to know of hand that would be great. 

 

Thank you,

 

Miranda

 

From: Clarkson, Matt [mailto:[email protected]] 
Sent: Monday, August 08, 2011 11:04 PM
To: Miranda Jacob
Cc: Marco Nolden; mitk-users
Subject: Re: [mitk-users] Mitk third party libraries

 

Hi Miranda. 

 

i have built my project with my own versions of VTK, ITK, CTK, GDCM, and
various other libraries that we use. The basic idea is that you build all
your own libraries first, and then build MITK where you set variables like
ITK_DIR, VTK_DIR to point to the ones you just created. The variables you
need to set can be found in the CMakeExternals directory. For example, in
the ITK.cmake, there is a line IF (NOT DEFINED ITK_DIR), and similarly for
all the other libraries.  You can leave the MITK SuperBuild flag on, so that
all the libraries you are not replacing like OpenCV get built as MITK
intends.

 

So, yes I believe it can be done, and you are heading in the right direction
to do this.  Whether you should do this is debatable. I did it because at
one point we were on an older version of ITK, but now we are on the same
version, its a bit redundant.  Also, it is possible to get caught out where
MITK specify one setting for ITK (for example), and you compile ITK with
different settings and then MITK won't build. Its up to you.

 

1. How you build these libraries is up to you. You could for example include
all the source code in your own project. For example, I believe the GIMIAS
project do this (www.gimias.org). Or you could pull the source code from an
external website or svn/git repository using the CMake ExternalProject
concept. I effectively created my own SuperBuild that would download the
dependencies, build them in much the same way MITK does, and then also
download MITK as part of my own SuperBuild.

 

2. So I use CMake once on my project, selecting the things I want to build.
I have flags for a bunch of command line programs, whether to build the MITK
based GUI etc.  CMake then generates a top level Makefile (unix), or .sln
file (Windows).  So, in Windows terms, I just open the .sln file and it
builds everything including MITK in one go. As I have created my own
SuperBuild, I can then have the settings I want on my third party libraries
like ITK.

 

3.  When I run MITK, I keep the SuperBuild on, to make sure that the MITK
project builds any libraries that it doesn't find. So, if MITK adds a
library that I don't want to build myself, then the MITK SuperBuild will
build it when it builds the MITK project.

 

4. I believe that if you have made a decent build, by writing your own CMake
code, then you would open your own top level .sln file, and just run that.
Upon successful completion of the whole lot, you can then just re-build your
own code as part of your code-compile-test cycle.

 

HOWEVER, all this goes give you a headache with testing, on all 3 platforms,
especially with packaging your final application. I have a suite of programs
that get bundled which includes command line programs and scripts etc, so I
also had to write my own CPack code.  So, if I was starting again, and I was
just building a GUI, I would just use the MITK project template, and use
that exclusively, and write my own code in modules, and build plugins.  That
way all the CPack code already works.

 

Hope that helps.

 

(also, I'm going on vacation tomorrow, so I apologise if you get no more
replies).

 

Matt

 

 

On 8 Aug 2011, at 22:00, Miranda Jacob wrote:





Thank you for the response. I am still trying to understand the MITK build
setup. Are there specific version of VTK, ITK, and GDCM that I should
download and use?? I know you had said the third party downloads are not
specific but I need choose a version so if there is a recommended one to use
that would be helpful.

 

 

So if I do choose to download my own version of VTK 5.6.1, ITK 3.20 and GDCM
2.0.18 and build it myself I am wondering the steps needed to make it work.

 

1.       Put each third party library in it's own source directory.

2.       Use CMake for each third party project and build them into a build
directory with the appropriate settings.  Do I need to open the third party
solutions and build them before running CMake on MITK??

3.       Then run Cmake on MITK setting the 3 directories for VTK, GDCM, and
ITK. Do I uncheck the MITK_USE_SUPERBUILD.  Is there any other settings for
this build I need to setup, check, or uncheck??

4.       Then if this works then what .sln for MITK do I build??  Will this
solution build the third party code or do I have to do that myself??

 

What I have done right now it I have run CMake on VTK, ITK, and GDCM and
then attempt to run CMake on MITK. I set the GDCM_DIR, VTK_DIR, and ITK_DIR
to the appropriate directory. I turn off MITK_USE_SUPERBUILD and select MITK
to BUILD_ALL_PLUGINS. When I  run CMAKE it can't find my GDCM version. The
version is blank which means it can't find it. I built my ITK with the
ITK_USE_SYSTEM_GDCM turned off. The GDCM version I have built using CMake is
2.0.19.   

 

Just wondering if there are some general instructions on how to build the
way I am trying to build?

 

Thank you,

 

Miranda

 

 

From: Marco Nolden [mailto:[email protected]] 
Sent: Saturday, August 06, 2011 5:01 AM
To: Miranda Jacobson
Cc: [email protected]
Subject: Re: [mitk-users] Mitk third party libraries

 

Hi Miranda,

you can use MITK with your own libraries as well, e.g. if you build a VTK
5.6.1 yourself you can set the VTK_DIR to this build tree in the MITK
configuration and the superbuild won't download and build VTK. The same
applies for the other 3rd party libraries. You can have a look at the files
in CMakeExternals to see how it works. There you will also find the options
we use to build the toolkits, other options may or may not work. 

The source codes in http://mitk.org/download/thirdparty are not specific. If
we change something there we do it with a patch step in superbuild (like for
DCMTK) or will mark it clearly as a modified version.

Please note that for GDCM there is an unresolved compilation issue with GDCM
> 2.0.15 and ITK 3.20, a workaround is described here:
http://bugs.mitk.org/show_bug.cgi?id=8801 .

Using the latest git-Versions of these libraries could work but is generally
unsupported. If you want to contribute changes to MITK to make it compatible
with these versions we would be happy to integrate them.

Best,
Marco

On 08/05/2011 11:11 PM, Miranda Jacobson wrote:

Hello,

I  am curious if MITK needs to be built and used with the VTK, ITK, and GDCM
that MITK downloads when the superbuild is performed. I want to be able to
build MITK without being forced to download the third party libraries but
wanted to clarify which versions I need to build myself. Are the versions on
http://mitk.org/download/thirdparty specific?? If I download a generic
version of VTK5.6.1 from the VTK website will MITK still work?  I had read
on the mitk mailing list

 

"recently we improved the DICOM reading code in mitk::DicomSeriesReader.

Since this class was getting really complicated (it supported GDCM before
and after 2.0, plus ITK's DICOMIO) and most of the functional, new code
relied on GDCM 2, we decided to remove support for other options.

 

A consequence of this is that MITK core now requires ITK to be built with a
custom compile of GDCM (2.0.14 is the version that is currently built by
super-build). We are sorry if this causes inconveniences for you.

 

We hope this change will benefit any developers who want to understand or
improve DicomSeriesReader and it will also make sure that more DICOM images
are loaded correctly with MITK."

 

 

 

So this made me think that if I  git the ITK and GDCM repositories from
their specific sites hat MITK will not compile or run. Can you please
clarify if MITK needs specific versions. I would like to be able to clone
the VTK, ITK, and GCDM repositories from their own site so I can benefit
from bug fixes and added features.

 

Thank you,

 

Miranda Jacobson

Software Engineer

Eigen, Inc.

 

 

----------------------------------------------------------------------------
--
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts. 
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1________________________________________
_______
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

 

------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to