[Ctk-developers] DCMTK_DIR is found incorrectly

Jean-Christophe Fillion-Robin jchris.fillionr at kitware.com
Mon Nov 4 14:29:33 UTC 2013


Based on your entry in the CTK tracker. I am assuming it is good to go ?
See https://github.com/commontk/CTK/issues/382


On Mon, Nov 4, 2013 at 9:28 AM, Jean-Christophe Fillion-Robin <
jchris.fillionr at kitware.com> wrote:

> Hi Csaba,
>
> After you confirm that adding NO_DEFAULT_PATH to [1] works. I will
> coordinate with ITK folks so that they also update their FindDCMTK.cmake
> file.
>
> Thanks
> Jc
>
> [1]
> https://github.com/commontk/CTK/blob/f64b68acd717dab060db41e8bee3f0f30df1a58f/Utilities/CMake/FindDCMTK.cmake#L42
>
>
> On Thu, Oct 31, 2013 at 4:46 PM, Csaba Pinter <csaba.pinter at queensu.ca>wrote:
>
>>  Hi Steve,
>>
>>
>>
>> I was going to do just that, thanks for the reminder!
>>
>> I created issue https://github.com/commontk/CTK/issues/382.
>>
>> The main reason I haven't created a topic branch yet is that I would like
>> to hear some opinions about it first, as I don't know what consequences it
>> has on Linux and Mac.
>>
>>
>>
>> FYI my agenda for next week besides this small change is to try our
>> display tables and DICOM roles enhancement for the DICOM browser (that
>> Andras and I implemented during the last hackfest) against the latest
>> listview-based browser and integrate it if it turns out to be working fine.
>>
>>
>>
>> Thanks,
>>
>> csaba
>>
>>
>>
>>
>>
>> *From:* Steve Pieper [mailto:pieper at ibility.net]
>> *Sent:* October 31, 2013 16:37
>>
>> *To:* Csaba Pinter
>> *Cc:* CTK mailing list
>> *Subject:* Re: [Ctk-developers] DCMTK_DIR is found incorrectly
>>
>>
>>
>> Hi Csaba -
>>
>>
>>
>> We'll be discussing open issues next week in London - can you make sure
>> there's a ctk issue that points to your assembla report?
>>
>>
>>
>> http://www.commontk.org/index.php/CTK-Hackfest-Nov-2013#Monday
>>
>>
>>
>> Thanks,
>>
>> Steve
>>
>>
>>
>> On Thu, Oct 17, 2013 at 11:02 AM, Csaba Pinter <csaba.pinter at queensu.ca>
>> wrote:
>>
>> Hi there,
>>
>>
>>
>> Any thoughts about the FindDCMTK changes proposed below?
>>
>> I'd appreciate any feedback.
>>
>>
>>
>> Thanks,
>>
>> csaba
>>
>>
>>
>>
>>
>> *From:* ctk-developers-bounces at commontk.org [mailto:
>> ctk-developers-bounces at commontk.org] *On Behalf Of *Csaba Pinter
>> *Sent:* October 10, 2013 15:14
>> *To:* CTK mailing list
>>
>>
>> *Subject:* Re: [Ctk-developers] DCMTK_DIR is found incorrectly
>>
>>
>>
>> Hello,
>>
>>
>>
>> I tried the NO_DEFAULT_PATH idea Jc was suggesting (see below), and now I
>> could successfully build CTK with DCMTK.
>>
>>
>>
>> As we have the same issue from time to time with CTK in Slicer (but
>> finally we could reproduce it, see [1]), I propose adding this flag to
>> FindDCMTK.cmake in the CTK master, at least until the DCMTKConfig.cmake
>> change is not integrated to DCMTK.
>>
>> As my CMake knowledge is limited, I don't know if this change causes any
>> problem on other operating systems though.
>>
>>
>>
>> I'd appreciate to hear your opinions about this.
>>
>>
>>
>> Thank you,
>>
>> csaba
>>
>>
>>
>> [1] https://www.assembla.com/spaces/slicerrt/tickets/325#/activity/ticket
>>
>>
>>
>>
>>
>> *From:* Jean-Christophe Fillion-Robin [mailto:jchris.fillionr at kitware.com<jchris.fillionr at kitware.com>]
>>
>> *Sent:* October 4, 2013 18:34
>> *To:* Csaba Pinter
>> *Cc:* Andras Lasso; CTK mailing list
>> *Subject:* Re: [Ctk-developers] DCMTK_DIR is found incorrectly
>>
>>
>>
>> Hi Csaba,
>>
>>
>>
>> As illustrated in the enclosed screenshot, build tree can be exported
>> into the CMake package registry. As some point, the DCMTK build tree has
>> probably been exported [1][2][3].
>>
>> Since when building CTK, it is expected that there are no
>> DCMTKConfig.cmake available, the first should be failing. In your case, it
>> seems not to be failing because it resolves to that previous build added to
>> the registery.
>>
>> I would suggest to try adding the parameter "NO_DEFAULT_PATH" to the
>> FindDCMTK.cmake module available in CTK. See [4]
>>
>>
>>
>> Hth
>>
>> Jc
>>
>>
>>
>> [1] http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:export
>> [2]
>> http://slicer-devel.65872.n3.nabble.com/Packaging-seems-to-work-again-tp4028121p4028134.html
>>
>> [3]
>> https://www.assembla.com/spaces/slicerrt/tickets/244-dcmtk_dir-vs--dcmtkconfig-cmake?comment=267984263#comment:267984263
>>
>> [4]
>> https://github.com/commontk/CTK/blob/f64b68acd717dab060db41e8bee3f0f30df1a58f/Utilities/CMake/FindDCMTK.cmake#L42
>>
>>
>>
>> On Fri, Oct 4, 2013 at 5:39 PM, Csaba Pinter <csaba.pinter at queensu.ca>
>> wrote:
>>
>> Hi Jc,
>>
>>
>>
>> I tried building CTK in many ways, but the result is always the same, so
>> the problem is completely reproducible, at least on my computer (I haven't
>> tried it elsewhere yet, but I plan to). As we have been struggling with
>> this issue for quite a while, but haven't been able to consistently
>> reproduce it, this is a great opportunity to fix it once and for all.
>>
>>
>>
>> I did some digging and this is what I found:
>>
>> -          FindDCMTK.cmake finds DCMTKConfig.cmake, but it is in the
>> incorrect directory that is used later (in one of my slicer builds)
>>
>> -          The reason why the DCMTK downloaded by the superbuild is not
>> found is most probably that it is a version that doesn't have
>> DCMTKConfig.cmake (as you described earlier)
>>
>> -          The same thing (finding the wrong DCMTK) happens if I add
>> NO_CMAKE_BUILDS_PATH to the find_package call in FindDCMTK.cmake
>>
>>
>>
>> Now I don't have any idea how to get the superbuild to use its own DCMTK.
>>
>> Also even if I can do a workaround and have a good build of CTK on my
>> machine, this is an issue that other people who want to build CTK on
>> Windows while already having a Slicer build have to face.
>>
>>
>>
>> Cheers,
>>
>> csaba
>>
>>
>>
>>
>>
>> *From:* Jean-Christophe Fillion-Robin [mailto:jchris.fillionr at kitware.com]
>>
>> *Sent:* October 4, 2013 12:07
>> *To:* Andras Lasso
>> *Cc:* Csaba Pinter; CTK mailing list
>>
>>
>> *Subject:* Re: [Ctk-developers] DCMTK_DIR is found incorrectly
>>
>>
>>
>> Hi Csaba, Andras,
>>
>> Within the file FindDCMTK.cmake [1] provided by CTK, where would you
>> suggest to add the NO_CMAKE_BUILDS_PATH ?
>>
>> Let's also note that the FindDCMTK.cmake provided by ITK would have to
>> patched also ...
>>
>> If you can reproduce the problem, with a combination of clearing cache +
>> adding some "message()" statement, you should be able to find out or
>> confirm what is the source of the problem.
>>
>>
>>
>> Jc
>>
>>
>> [1]
>>
>> https://github.com/commontk/CTK/blob/master/Utilities/CMake/FindDCMTK.cmake
>>
>>
>>
>> On Wed, Oct 2, 2013 at 1:42 PM, Andras Lasso <lasso at queensu.ca> wrote:
>>
>> I have this annoying issue during Slicer builds as well: my nightly
>> slicer builds usually break after a few days because after I configure
>> other projects in CMake CTK finds DCMTK of another project instead of its
>> own.
>>
>>
>>
>> It may be due to the find_package path finding rule 5: “Search project
>> build trees recently configured in a CMake GUI. This can be skipped if
>> NO_CMAKE_BUILDS_PATH is passed. It is intended for the case when a user is
>> building multiple dependent projects one after another.“ (
>> http://www.cmake.org/cmake/help/v2.8.10/ctest.html). Probably CTK should
>> rely on rules 1-4 or disable rule 5 – or it may be possible that something
>> else goes wrong and that’s why the rule 5 kicks in.
>>
>>
>>
>> Andras
>>
>>
>>
>>
>>
>> *From:* ctk-developers-bounces at commontk.org [mailto:
>> ctk-developers-bounces at commontk.org] *On Behalf Of *Jean-Christophe
>> Fillion-Robin
>> *Sent:* Wednesday, October 02, 2013 11:39 AM
>>
>>
>> *To:* Csaba Pinter
>> *Cc:* CTK mailing list
>> *Subject:* Re: [Ctk-developers] DCMTK_DIR is found incorrectly
>>
>>
>>
>> Hi Csaba,
>>
>> In CTKConfig, the variable "CMAKE_MODULE_PATH" is a CMake global variable
>> that is empty by default. On the other hand "CTK_CMAKE_UTILITIES_DIR"
>> should not be empty as illustrated below:
>>
>> $ cat ../CTKConfig.cmake | ack -i "set\(CTK_CMAKE_UTILITIES_DIR"
>> SET(CTK_CMAKE_UTILITIES_DIR "/home/jchris/Projects/CTK/Utilities/CMake")
>>
>>
>>
>>
>>
>> Otherwise, you will find below the result of my experiment. When
>> configured, CTK found the expected DCMTK.
>>
>>
>> On Ubuntu 13.04 using CMake 2.8.11.2, after installing the package
>> "python2.7-dev" doing so the following works.
>>
>> Note that I didn't enable CTK_ENABLE_ALL since I didn't the build system
>> to build VTK or ITK components. Instead, I passed the following options:
>>   -DCTK_ENABLE_Python_Wrapping:BOOL=ON
>>   -DCTK_ENABLE_DICOM:BOOL=ON
>>   -DCTK_BUILD_EXAMPLES
>>
>>
>>
>> $ git clone git at github.com:commontk/CTK
>>
>> $ mkdir CTK-Debug
>>
>> $ cd CTK-Debug
>>
>> $ cmake
>> -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Support/QtSDK-1.2.1/Desktop/Qt/4.8.1/gcc/bin/qmake
>> -DCTK_ENABLE_Python_Wrapping:BOOL=ON -DCTK_ENABLE_DICOM:BOOL=ON
>> -DCTK_BUILD_EXAMPLES:BOOL=ON ../CTK
>> [...]
>> -- Enabling [CTK_LIB_DICOM/Core] because of [ CTK_ENABLE_DICOM:1 OR (
>> CTK_ENABLE_DICOMApplicationHosting:0 AND CTK_BUILD_EXAMPLES:1 )] evaluates
>> to True
>> -- Enabling [CTK_APP_ctkDICOM] because of [ CTK_ENABLE_DICOM:1 AND
>> CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOM2] because of [ CTK_ENABLE_DICOM:1 AND
>> CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOMIndexer] because of [ CTK_ENABLE_DICOM:1 AND
>> CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOMDemoSCU] because of [ CTK_ENABLE_DICOM:1 AND
>> CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOMQuery] because of [ CTK_ENABLE_DICOM:1 AND
>> CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOMRetrieve] because of [ CTK_ENABLE_DICOM:1
>> AND CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOMQueryRetrieve] because of [
>> CTK_ENABLE_DICOM:1 AND CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkCommandLineModuleExplorer] because of [
>> CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkDICOMObjectViewer] because of [
>> CTK_ENABLE_DICOM:1 AND CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Enabling [CTK_APP_ctkSimplePythonShell] because of [
>> CTK_ENABLE_Python_Wrapping:1 AND CTK_BUILD_EXAMPLES:1] evaluates to True
>> -- Generated: /home/jchris/Projects/CTK-Debug/DGraphInput-alldep.txt
>> -- Generated:
>> /home/jchris/Projects/CTK-Debug/DGraphInput-alldep-withext.txt
>> -- Enabling option [CTK_LIB_DICOM/Widgets] required by [ctkDICOM]
>> -- Enabling option [CTK_LIB_Widgets] required by [ctkDICOM]
>> -- Enabling option [CTK_LIB_CommandLineModules/Frontend/QtGui] required
>> by [ctkCommandLineModuleExplorer]
>> -- Enabling option [CTK_LIB_CommandLineModules/Frontend/QtWebKit]
>> required by [ctkCommandLineModuleExplorer]
>> -- Enabling option [CTK_LIB_CommandLineModules/Backend/LocalProcess]
>> required by [ctkCommandLineModuleExplorer]
>> -- Enabling option [CTK_LIB_CommandLineModules/Backend/FunctionPointer]
>> required by [ctkCommandLineModuleExplorer]
>> -- Enabling option [CTK_LIB_CommandLineModules/Core] required by
>> [ctkCommandLineModuleExplorer]
>> -- Enabling option [CTK_LIB_Scripting/Python/Widgets] required by
>> [ctkSimplePythonShell]
>> -- Enabling option [CTK_LIB_Scripting/Python/Core] required by
>> [ctkSimplePythonShell]
>> -- Found PythonInterp: /usr/bin/python (found version "2.7.4")
>> -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found
>> version "2.7.4")
>> -- Generated: /home/jchris/Projects/CTK-Debug/DGraphInput.txt
>> -- Generated: /home/jchris/Projects/CTK-Debug/Project.xml
>> -- Found Git: /usr/bin/git (found version "1.8.1.2")
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /home/jchris/Projects/CTK-Debug
>>
>> $ make -j6
>> [...]
>> [ 90%] Performing configure step for 'CTK-Configure'
>> [...]
>> -- Found PythonInterp: /usr/bin/python (found version "2.7.4")
>> -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found
>> version "2.7.4")
>> -- Generated: /home/jchris/Projects/CTK-Debug/CTK-build/DGraphInput.txt
>> -- Generated: /home/jchris/Projects/CTK-Debug/CTK-build/Project.xml
>> -- Trying to find DCMTK expecting DCMTKConfig.cmake
>> -- Trying to find DCMTK expecting DCMTKConfig.cmake - failed
>> -- Trying to find DCMTK relying on FindDCMTK.cmake
>> -- Looking for include file pthread.h
>> -- Looking fothe r include file pthread.h - found
>> -- Looking for pthread_create
>> -- Looking for pthread_create - not found
>> -- Looking for pthread_create in pthreads
>> -- Looking for pthread_create in pthreads - not found
>> -- Looking for pthread_create in pthread
>> -- Looking for pthread_create in pthread - found
>> -- Found Threads: TRUE
>> -- Found DCMTK:
>> /home/jchris/Projects/CTK-Debug/CMakeExternals/Install/include/dcmtk/config
>>
>> -- Trying to find DCMTK relying on FindDCMTK.cmake - ok
>> -- CTKCore: BFD support disabled
>> -- Configuring done
>> -- Generating done
>> [...]
>> -- Build files have been written to:
>> /home/jchris/Projects/CTK-Debug/CTK-build
>>
>> [...]
>> [100%] Built target CTKWidgetsCppTests
>> [100%] Built target CTK-build
>>
>>
>>
>> $ cd CTK-build
>> $ $ cat CMakeCache.txt | ack DCMTK_DIR\:PATH
>> DCMTK_DIR:PATH=/home/jchris/Projects/CTK-Debug/CMakeExternals/Install
>>
>> Let's note that DCMTK couldn't be found using DCMTKConfig.cmake, this is
>> explained by the fact the official DCMTK didn't integrate yet our latest
>> and greatest contribution [1]
>>
>> Hth
>>
>> Jc
>>
>>
>> [1]
>> https://github.com/commontk/DCMTK/commit/f461865d1759854db56e4c840991c81c77e45bb9
>>
>>
>>
>>
>>
>>
>>
>> On Wed, Oct 2, 2013 at 10:18 AM, Csaba Pinter <csaba.pinter at queensu.ca>
>> wrote:
>>
>> Hi all,
>>
>>
>>
>> I'm trying to build CTK separately, but I have problems with linking
>> DCMTK.
>>
>>
>>
>> The way I build CTK:
>>
>> -          Turn on CTK_BUILD_ALL
>>
>> -          Turn on CTK_ENABLE_DICOM (I need this as I want to merge and
>> test my changes in the CTK/Core/DICOM project)
>>
>> -          Set the qmake executable
>>
>> -          Configure
>>
>> -          CMake complains about python paths, I set those manually
>>
>> -          Configure, Generate
>>
>> -          Build superbuild
>>
>>
>>
>> Then DCMTK is downloaded and built by the superbuild, but later on, CTK
>> projects find a completely different DCMTK directory (in my Slicer nightly
>> build directory). I tried to manually add the DCMTK directory to CMake, but
>> this variable does not exist in the superbuild (it is also not passed
>> down), and setting it to the inner CTK project doesn't work.
>>
>>
>>
>> Basically no matter what I do, the DCMTK path is set to whatever
>> find_project finds. This is what I found in CTKConfig.cmake:
>>
>> # Update CMake module path so that calling "find_package(DCMTK)" works as
>> expected
>>
>> # after calling "find_package(CTK)"
>>
>> # Ideally projects like DCMTK or PythonQt should provide both "Config"
>> and "Use" files.
>>
>> set(CMAKE_MODULE_PATH
>>
>>   ${CTK_CMAKE_UTILITIES_DIR}
>>
>>   ${CMAKE_MODULE_PATH}
>>
>>   )
>>
>>
>>
>> Now the problem with this is that ${CMAKE_MODULE_PATH} is empty, so there
>> is no chance DCMTK is found correctly.
>>
>>
>>
>> Can someone please help with this?
>>
>>
>>
>> Thanks a lot,
>>
>> csaba
>>
>>
>>
>> ________________________________
>>
>> Csaba Pinter
>>
>> Medical Software Systems Engineer
>>
>> Laboratory for Percutanous Surgery
>>
>> School of Computing
>>
>> Queen’s University
>>
>> Kingston, ON, Canada
>>
>> Email: csaba.pinter at queensu.ca
>>
>> Web: http://perk.cs.queensu.ca
>>
>>
>> _______________________________________________
>> Ctk-developers mailing list
>> Ctk-developers at commontk.org
>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
>>
>>
>>
>>
>> --
>> +1 919 869 8849
>>
>>
>>
>>
>> --
>> +1 919 869 8849
>>
>>
>>
>>
>> --
>> +1 919 869 8849
>>
>>
>> _______________________________________________
>> Ctk-developers mailing list
>> Ctk-developers at commontk.org
>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
>>
>>
>> The information in this e-mail is intended only for the person to whom it
>> is
>> addressed. If you believe this e-mail was sent to you in error and the
>> e-mail
>> contains patient information, please contact the Partners Compliance
>> HelpLine at
>> http://www.partners.org/complianceline . If the e-mail was sent to you
>> in error
>> but does not contain patient information, please contact the sender and
>> properly
>> dispose of the e-mail.
>>
>>
>>
>> _______________________________________________
>> Ctk-developers mailing list
>> Ctk-developers at commontk.org
>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers
>>
>>
>
>
> --
> +1 919 869 8849
>



-- 
+1 919 869 8849
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ctk-developers/attachments/20131104/4c8d47e1/attachment.htm>


More information about the Ctk-developers mailing list