[ITK] Multiple ITK-builds and CMake

Matt McCormick matt.mccormick at kitware.com
Mon Sep 15 11:41:37 EDT 2014


Hi Mikael,

Since BRAINSTools is a "superbuild", i.e. it will build its own
ITK/VTK by default, you will need to tell the the build system to
first not build its own, so that you can specify your manually built
version.

HTH,
Matt

On Mon, Sep 15, 2014 at 1:40 AM, Eriksson, Mikael
<mikael.k.eriksson at philips.com> wrote:
> Hi Matt and community,
>
> - Got it!
> - That is the problem here, the CMake-gui for this application has no ITK_DIR entry so that I can explicitly specify which one to use. Any suggestions for how to get around this?
>
> Best,
> Mikael
>
> ………………………………………………………………………………………….
> Mikael Eriksson
> R&D Physicist Trainee
> Philips Medical Systems MR Finland, Feasibility studies
>
> +358 40 631 8500
> mikael.k.eriksson at philips.com
> ………………………………………………………………………………………….
>
> -----Original Message-----
> From: Matt McCormick [mailto:matt.mccormick at kitware.com]
> Sent: 12. syyskuuta 2014 16:55
> To: Eriksson, Mikael
> Cc: community at itk.org
> Subject: Re: [ITK] Multiple ITK-builds and CMake
>
> Hi Mikael,
>
> A few pointers:
>
> - Only a single source per project directory is needed.
> - Set ITK_DIR in the cmake-gui explicitly for each configuration -- don't try to use environmental variables, etc.
>
> More details on how find_package works can be found here [1] and here [2].
>
> Hope this helps,
> Matt
>
> [1] http://www.cmake.org/cmake/help/v3.0/command/find_package.html#command:find_package
>
> [2] http://www.cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html
>
> On Fri, Sep 12, 2014 at 8:48 AM, Eriksson, Mikael <mikael.k.eriksson at philips.com> wrote:
>> Hello,
>>
>>
>>
>> I’m experiencing some problems trying to build BRAINSTools
>> (https://github.com/BRAINSia/BRAINSTools), from where I wanted to run
>> the registration algorithms implemented in the 3DSlicer gui from the
>> command line. The initial situation was: I had ITK (4.5) and VTK built
>> from downloaded files in debug mode on my computer. I managed to build
>> the modules that I wanted from BRAINSTools (BRAINSFit and
>> BRAINSDemonWarp and their dependencies) in debug mode. Everything was
>> fine until I tried running a registration – I hadn’t realized until
>> then that debug mode would make the registrations run really slowly.
>>
>>
>>
>> So, since I now have git on my computer, I cloned fresh versions of
>> ITK and VTK to new source folders at the same levels as the old source
>> folders, and built one debug version and one release version for both
>> ITK and VTK, into separate folders. So my directory structure looked like this.
>>
>>
>>
>> C:/          -              ITK/        -              srcOld (ITK 4.5, from
>> files)
>>
>>                                                                 binOld
>> (debug)
>>
>> srcNewDebug (ITK 4.7, from source)
>>
>> srcNewRelease (ITK 4.7, from source)
>>
>> binNewDebug
>>
>> binNewRelease
>>
>>
>>
>> C:/          -              VTK/      -              corresponding…
>>
>>
>>
>> I probably have an unnecessary amount of builds and folders, but I was
>> afraid to ruin any previous work.
>>
>>
>>
>> Now I tried to build BRAINSTools again with CMake. The problem here is
>> that there is no option to specify ITK_DIR in the CMakeGUI, as there
>> is in other programs. So I’m not sure how CMake finds and chooses an
>> ITK-build, but I think it fails, because when compiling the
>> BRAINSTools solution in Visual Studio 2010 as usual, using release
>> mode this time, I got linking errors saying that some ITK-libraries couldn’t be found:
>>
>>
>>
>> error LNK1181: cannot open input file '..\..\lib\Release\ITKCommon-4.7.lib'
>>
>>
>>
>> I changed my environment variables ITK_DIR to C:/ITK/binNewRelease and
>> changed the old ITK and VTK entries in the PATH variables to the new
>> ones (changed C:\ITK\binOld\bin\debug to
>> C:\ITK\binNewRelease\bin\Release and same for VTK). The same problem
>> persisted however. Can anybody, give any suggestions for how to solve
>> this particular problem? Also, I would be very happy for an
>> explanation or a good link for how CMake and ITK interconnect, and
>> especially, how CMake chooses an ITK build. I looked at the
>> findITK.CMake files, and the ITKConfig.cmake and useITK.cmake files
>> and read the documentation for the find_package function, but it’s still not clear to me how it works.
>>
>>
>>
>> Best regards,
>>
>> Mikael
>>
>>
>>
>> ………………………………………………………………………………………….
>>
>> Mikael Eriksson
>>
>> R&D Physicist Trainee
>>
>> Philips Medical Systems MR Finland, Feasibility studies
>>
>> mikael.k.eriksson at philips.com
>>
>> ………………………………………………………………………………………….
>>
>>
>>
>>
>> ________________________________
>> The information contained in this message may be confidential and
>> legally protected under applicable law. The message is intended solely
>> for the addressee(s). If you are not the intended recipient, you are
>> hereby notified that any use, forwarding, dissemination, or
>> reproduction of this message is strictly prohibited and may be
>> unlawful. If you are not the intended recipient, please contact the
>> sender by return e-mail and destroy all copies of the original message.
>>
>> _______________________________________________
>> Community mailing list
>> Community at itk.org
>> http://public.kitware.com/mailman/listinfo/community
>>
>
> ________________________________
> The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.



More information about the Community mailing list