Hi,
did you set GDCM_DIR to your externally built GDCM? What is the output
if you build the project "GDCM" in MITK-superbuild.sln?
You could also send us the CMakeCache.txt file of your MITK superbuild
tree, so we can have a closer look.
Best,
Sascha
P.S.: You should not have to modify any CMake files in the MITK source tree.
On 08/09/2011 11:43 PM, Miranda Jacob wrote:
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
<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 inhttp://mitk.org/download/thirdpartyare 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
onhttp://mitk.org/download/thirdpartyspecific?? 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