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<http://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]<mailto:[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&reg; 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]<mailto:[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