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® 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
