MantisBT - CMake
View Issue Details
0012323CMakeCMakepublic2011-07-08 11:562012-01-02 15:56
Dan Thill 
David Cole 
lowminoralways
closedfixed 
WindowsWindows XP-64SP3
CMake 2.8.4 
CMake 2.8.6CMake 2.8.6 
0012323: FindDCMTK cannot find all includes for MSVC build of DCMTK
When FindDCMTK is searching for headers for all the DCMTK libraries, it does not find them if DCMTK was installed via its own CMake INSTALL target. This is because the directory tree is slightly different than what FindDCMTK is expecting.

Fix is simple. Add the following to line 111 of FindDCMTK.cmake:

${DCMTK_DIR}/include/dcmtk/${dir}
Below is the directory tree of an installed MSVC build of DCMTK 3.5.4

bin
etc
include
lib
share
bin\dcm2pnm.exe
bin\dcm2xml.exe
bin\dcmcjpeg.exe
bin\dcmconv.exe
bin\dcmcrle.exe
bin\dcmdjpeg.exe
bin\dcmdrle.exe
bin\dcmdspfn.exe
bin\dcmdump.exe
bin\dcmftest.exe
bin\dcmgpdir.exe
bin\dcmj2pnm.exe
bin\dcmmkcrv.exe
bin\dcmmkdir.exe
bin\dcmmklut.exe
bin\dcmodify.exe
bin\dcmp2pgm.exe
bin\dcmprscp.exe
bin\dcmprscu.exe
bin\dcmpschk.exe
bin\dcmpsmk.exe
bin\dcmpsprt.exe
bin\dcmpsrcv.exe
bin\dcmpssnd.exe
bin\dcmqridx.exe
bin\dcmqrscp.exe
bin\dcmqrti.exe
bin\dcmquant.exe
bin\dcmscale.exe
bin\dcmsign.exe
bin\dcod2lum.exe
bin\dconvlum.exe
bin\dsr2html.exe
bin\dsr2xml.exe
bin\dsrdump.exe
bin\dump2dcm.exe
bin\echoscu.exe
bin\findscu.exe
bin\mkreport.exe
bin\movescu.exe
bin\pdf2dcm.exe
bin\storescp.exe
bin\storescu.exe
bin\termscu.exe
bin\wlmscpfs.exe
bin\xml2dcm.exe
bin\xml2dsr.exe
etc\dcmpstat.cfg
etc\dcmqrscp.cfg
etc\printers.cfg
etc\storescp.cfg
etc\storescu.cfg
include\dcmtk
include\dcmtk\config
include\dcmtk\dcmdata
include\dcmtk\dcmimage
include\dcmtk\dcmimgle
include\dcmtk\dcmjpeg
include\dcmtk\dcmnet
include\dcmtk\dcmpstat
include\dcmtk\dcmqrdb
include\dcmtk\dcmsign
include\dcmtk\dcmsr
include\dcmtk\dcmtls
include\dcmtk\dcmwlm
include\dcmtk\ofstd
include\dcmtk\config\cfwin32.h
include\dcmtk\config\osconfig.h
include\dcmtk\dcmdata\cmdlnarg.h
include\dcmtk\dcmdata\dcbytstr.h
include\dcmtk\dcmdata\dcchrstr.h
include\dcmtk\dcmdata\dccodec.h
include\dcmtk\dcmdata\dcdatset.h
include\dcmtk\dcmdata\dcddirif.h
include\dcmtk\dcmdata\dcdebug.h
include\dcmtk\dcmdata\dcdefine.h
include\dcmtk\dcmdata\dcdeftag.h
include\dcmtk\dcmdata\dcdicdir.h
include\dcmtk\dcmdata\dcdicent.h
include\dcmtk\dcmdata\dcdict.h
include\dcmtk\dcmdata\dcdirrec.h
include\dcmtk\dcmdata\dcelem.h
include\dcmtk\dcmdata\dcerror.h
include\dcmtk\dcmdata\dcfilefo.h
include\dcmtk\dcmdata\dchashdi.h
include\dcmtk\dcmdata\dcistrma.h
include\dcmtk\dcmdata\dcistrmb.h
include\dcmtk\dcmdata\dcistrmf.h
include\dcmtk\dcmdata\dcistrmz.h
include\dcmtk\dcmdata\dcitem.h
include\dcmtk\dcmdata\dclist.h
include\dcmtk\dcmdata\dcmetinf.h
include\dcmtk\dcmdata\dcobject.h
include\dcmtk\dcmdata\dcofsetl.h
include\dcmtk\dcmdata\dcostrma.h
include\dcmtk\dcmdata\dcostrmb.h
include\dcmtk\dcmdata\dcostrmf.h
include\dcmtk\dcmdata\dcostrmz.h
include\dcmtk\dcmdata\dcovlay.h
include\dcmtk\dcmdata\dcpcache.h
include\dcmtk\dcmdata\dcpixel.h
include\dcmtk\dcmdata\dcpixseq.h
include\dcmtk\dcmdata\dcpxitem.h
include\dcmtk\dcmdata\dcrleccd.h
include\dcmtk\dcmdata\dcrlecce.h
include\dcmtk\dcmdata\dcrlecp.h
include\dcmtk\dcmdata\dcrledec.h
include\dcmtk\dcmdata\dcrledrg.h
include\dcmtk\dcmdata\dcrleenc.h
include\dcmtk\dcmdata\dcrleerg.h
include\dcmtk\dcmdata\dcrlerp.h
include\dcmtk\dcmdata\dcsequen.h
include\dcmtk\dcmdata\dcstack.h
include\dcmtk\dcmdata\dcswap.h
include\dcmtk\dcmdata\dctag.h
include\dcmtk\dcmdata\dctagkey.h
include\dcmtk\dcmdata\dctk.h
include\dcmtk\dcmdata\dctypes.h
include\dcmtk\dcmdata\dcuid.h
include\dcmtk\dcmdata\dcvm.h
include\dcmtk\dcmdata\dcvr.h
include\dcmtk\dcmdata\dcvrae.h
include\dcmtk\dcmdata\dcvras.h
include\dcmtk\dcmdata\dcvrat.h
include\dcmtk\dcmdata\dcvrcs.h
include\dcmtk\dcmdata\dcvrda.h
include\dcmtk\dcmdata\dcvrds.h
include\dcmtk\dcmdata\dcvrdt.h
include\dcmtk\dcmdata\dcvrfd.h
include\dcmtk\dcmdata\dcvrfl.h
include\dcmtk\dcmdata\dcvris.h
include\dcmtk\dcmdata\dcvrlo.h
include\dcmtk\dcmdata\dcvrlt.h
include\dcmtk\dcmdata\dcvrobow.h
include\dcmtk\dcmdata\dcvrof.h
include\dcmtk\dcmdata\dcvrpn.h
include\dcmtk\dcmdata\dcvrpobw.h
include\dcmtk\dcmdata\dcvrsh.h
include\dcmtk\dcmdata\dcvrsl.h
include\dcmtk\dcmdata\dcvrss.h
include\dcmtk\dcmdata\dcvrst.h
include\dcmtk\dcmdata\dcvrtm.h
include\dcmtk\dcmdata\dcvrui.h
include\dcmtk\dcmdata\dcvrul.h
include\dcmtk\dcmdata\dcvrulup.h
include\dcmtk\dcmdata\dcvrus.h
include\dcmtk\dcmdata\dcvrut.h
include\dcmtk\dcmdata\dcxfer.h
include\dcmtk\dcmimage\diargimg.h
include\dcmtk\dcmimage\diargpxt.h
include\dcmtk\dcmimage\dicmyimg.h
include\dcmtk\dcmimage\dicmypxt.h
include\dcmtk\dcmimage\dicocpt.h
include\dcmtk\dcmimage\dicoflt.h
include\dcmtk\dcmimage\dicoimg.h
include\dcmtk\dcmimage\dicomot.h
include\dcmtk\dcmimage\dicoopx.h
include\dcmtk\dcmimage\dicoopxt.h
include\dcmtk\dcmimage\dicopx.h
include\dcmtk\dcmimage\dicopxt.h
include\dcmtk\dcmimage\dicorot.h
include\dcmtk\dcmimage\dicosct.h
include\dcmtk\dcmimage\dihsvimg.h
include\dcmtk\dcmimage\dihsvpxt.h
include\dcmtk\dcmimage\dipalimg.h
include\dcmtk\dcmimage\dipalpxt.h
include\dcmtk\dcmimage\dipipng.h
include\dcmtk\dcmimage\dipitiff.h
include\dcmtk\dcmimage\diqtcmap.h
include\dcmtk\dcmimage\diqtctab.h
include\dcmtk\dcmimage\diqtfs.h
include\dcmtk\dcmimage\diqthash.h
include\dcmtk\dcmimage\diqthitl.h
include\dcmtk\dcmimage\diqthitm.h
include\dcmtk\dcmimage\diqtid.h
include\dcmtk\dcmimage\diqtpbox.h
include\dcmtk\dcmimage\diqtpix.h
include\dcmtk\dcmimage\diqtstab.h
include\dcmtk\dcmimage\diqttype.h
include\dcmtk\dcmimage\diquant.h
include\dcmtk\dcmimage\diregist.h
include\dcmtk\dcmimage\dirgbimg.h
include\dcmtk\dcmimage\dirgbpxt.h
include\dcmtk\dcmimage\diybrimg.h
include\dcmtk\dcmimage\diybrpxt.h
include\dcmtk\dcmimage\diyf2img.h
include\dcmtk\dcmimage\diyf2pxt.h
include\dcmtk\dcmimage\diyp2img.h
include\dcmtk\dcmimage\diyp2pxt.h
include\dcmtk\dcmimgle\dcmimage.h
include\dcmtk\dcmimgle\dibaslut.h
include\dcmtk\dcmimgle\diciefn.h
include\dcmtk\dcmimgle\dicielut.h
include\dcmtk\dcmimgle\dicrvfit.h
include\dcmtk\dcmimgle\didislut.h
include\dcmtk\dcmimgle\didispfn.h
include\dcmtk\dcmimgle\didocu.h
include\dcmtk\dcmimgle\diflipt.h
include\dcmtk\dcmimgle\digsdfn.h
include\dcmtk\dcmimgle\digsdlut.h
include\dcmtk\dcmimgle\diimage.h
include\dcmtk\dcmimgle\diinpx.h
include\dcmtk\dcmimgle\diinpxt.h
include\dcmtk\dcmimgle\diluptab.h
include\dcmtk\dcmimgle\dimo1img.h
include\dcmtk\dcmimgle\dimo2img.h
include\dcmtk\dcmimgle\dimocpt.h
include\dcmtk\dcmimgle\dimoflt.h
include\dcmtk\dcmimgle\dimoimg.h
include\dcmtk\dcmimgle\dimoipxt.h
include\dcmtk\dcmimgle\dimomod.h
include\dcmtk\dcmimgle\dimoopx.h
include\dcmtk\dcmimgle\dimoopxt.h
include\dcmtk\dcmimgle\dimopx.h
include\dcmtk\dcmimgle\dimopxt.h
include\dcmtk\dcmimgle\dimorot.h
include\dcmtk\dcmimgle\dimosct.h
include\dcmtk\dcmimgle\diobjcou.h
include\dcmtk\dcmimgle\diovdat.h
include\dcmtk\dcmimgle\diovlay.h
include\dcmtk\dcmimgle\diovlimg.h
include\dcmtk\dcmimgle\diovpln.h
include\dcmtk\dcmimgle\dipixel.h
include\dcmtk\dcmimgle\diplugin.h
include\dcmtk\dcmimgle\dipxrept.h
include\dcmtk\dcmimgle\diregbas.h
include\dcmtk\dcmimgle\dirotat.h
include\dcmtk\dcmimgle\discalet.h
include\dcmtk\dcmimgle\displint.h
include\dcmtk\dcmimgle\ditranst.h
include\dcmtk\dcmimgle\diutils.h
include\dcmtk\dcmjpeg\ddpiimpl.h
include\dcmtk\dcmjpeg\dipijpeg.h
include\dcmtk\dcmjpeg\djcodecd.h
include\dcmtk\dcmjpeg\djcodece.h
include\dcmtk\dcmjpeg\djcparam.h
include\dcmtk\dcmjpeg\djdecabs.h
include\dcmtk\dcmjpeg\djdecbas.h
include\dcmtk\dcmjpeg\djdecext.h
include\dcmtk\dcmjpeg\djdeclol.h
include\dcmtk\dcmjpeg\djdecode.h
include\dcmtk\dcmjpeg\djdecpro.h
include\dcmtk\dcmjpeg\djdecsps.h
include\dcmtk\dcmjpeg\djdecsv1.h
include\dcmtk\dcmjpeg\djdijg12.h
include\dcmtk\dcmjpeg\djdijg16.h
include\dcmtk\dcmjpeg\djdijg8.h
include\dcmtk\dcmjpeg\djeijg12.h
include\dcmtk\dcmjpeg\djeijg16.h
include\dcmtk\dcmjpeg\djeijg8.h
include\dcmtk\dcmjpeg\djencabs.h
include\dcmtk\dcmjpeg\djencbas.h
include\dcmtk\dcmjpeg\djencext.h
include\dcmtk\dcmjpeg\djenclol.h
include\dcmtk\dcmjpeg\djencode.h
include\dcmtk\dcmjpeg\djencpro.h
include\dcmtk\dcmjpeg\djencsps.h
include\dcmtk\dcmjpeg\djencsv1.h
include\dcmtk\dcmjpeg\djrplol.h
include\dcmtk\dcmjpeg\djrploss.h
include\dcmtk\dcmjpeg\djutils.h
include\dcmtk\dcmnet\assoc.h
include\dcmtk\dcmnet\cond.h
include\dcmtk\dcmnet\dcasccff.h
include\dcmtk\dcmnet\dcasccfg.h
include\dcmtk\dcmnet\dccfenmp.h
include\dcmtk\dcmnet\dccfpcmp.h
include\dcmtk\dcmnet\dccfprmp.h
include\dcmtk\dcmnet\dccfrsmp.h
include\dcmtk\dcmnet\dccftsmp.h
include\dcmtk\dcmnet\dccfuidh.h
include\dcmtk\dcmnet\dcmlayer.h
include\dcmtk\dcmnet\dcmsmap.h
include\dcmtk\dcmnet\dcmtrans.h
include\dcmtk\dcmnet\dcompat.h
include\dcmtk\dcmnet\dicom.h
include\dcmtk\dcmnet\dimse.h
include\dcmtk\dcmnet\diutil.h
include\dcmtk\dcmnet\dul.h
include\dcmtk\dcmnet\extneg.h
include\dcmtk\dcmnet\lst.h
include\dcmtk\dcmpstat\dcmpstat.h
include\dcmtk\dcmpstat\dvcache.h
include\dcmtk\dcmpstat\dviface.h
include\dcmtk\dcmpstat\dvpsab.h
include\dcmtk\dcmpstat\dvpsabl.h
include\dcmtk\dcmpstat\dvpsal.h
include\dcmtk\dcmpstat\dvpsall.h
include\dcmtk\dcmpstat\dvpscf.h
include\dcmtk\dcmpstat\dvpscu.h
include\dcmtk\dcmpstat\dvpscul.h
include\dcmtk\dcmpstat\dvpsda.h
include\dcmtk\dcmpstat\dvpsdal.h
include\dcmtk\dcmpstat\dvpsdef.h
include\dcmtk\dcmpstat\dvpsfs.h
include\dcmtk\dcmpstat\dvpsga.h
include\dcmtk\dcmpstat\dvpsgal.h
include\dcmtk\dcmpstat\dvpsgl.h
include\dcmtk\dcmpstat\dvpsgll.h
include\dcmtk\dcmpstat\dvpsgr.h
include\dcmtk\dcmpstat\dvpsgrl.h
include\dcmtk\dcmpstat\dvpshlp.h
include\dcmtk\dcmpstat\dvpsib.h
include\dcmtk\dcmpstat\dvpsibl.h
include\dcmtk\dcmpstat\dvpsmsg.h
include\dcmtk\dcmpstat\dvpsov.h
include\dcmtk\dcmpstat\dvpsovl.h
include\dcmtk\dcmpstat\dvpspl.h
include\dcmtk\dcmpstat\dvpspll.h
include\dcmtk\dcmpstat\dvpspr.h
include\dcmtk\dcmpstat\dvpsprt.h
include\dcmtk\dcmpstat\dvpsri.h
include\dcmtk\dcmpstat\dvpsril.h
include\dcmtk\dcmpstat\dvpsrs.h
include\dcmtk\dcmpstat\dvpsrsl.h
include\dcmtk\dcmpstat\dvpssp.h
include\dcmtk\dcmpstat\dvpsspl.h
include\dcmtk\dcmpstat\dvpssv.h
include\dcmtk\dcmpstat\dvpssvl.h
include\dcmtk\dcmpstat\dvpstat.h
include\dcmtk\dcmpstat\dvpstx.h
include\dcmtk\dcmpstat\dvpstxl.h
include\dcmtk\dcmpstat\dvpstyp.h
include\dcmtk\dcmpstat\dvpsvl.h
include\dcmtk\dcmpstat\dvpsvll.h
include\dcmtk\dcmpstat\dvpsvw.h
include\dcmtk\dcmpstat\dvpsvwl.h
include\dcmtk\dcmpstat\dvsighdl.h
include\dcmtk\dcmqrdb\dcmqrcbf.h
include\dcmtk\dcmqrdb\dcmqrcbg.h
include\dcmtk\dcmqrdb\dcmqrcbm.h
include\dcmtk\dcmqrdb\dcmqrcbs.h
include\dcmtk\dcmqrdb\dcmqrcnf.h
include\dcmtk\dcmqrdb\dcmqrdba.h
include\dcmtk\dcmqrdb\dcmqrdbi.h
include\dcmtk\dcmqrdb\dcmqrdbs.h
include\dcmtk\dcmqrdb\dcmqridx.h
include\dcmtk\dcmqrdb\dcmqropt.h
include\dcmtk\dcmqrdb\dcmqrptb.h
include\dcmtk\dcmqrdb\dcmqrsrv.h
include\dcmtk\dcmqrdb\dcmqrtis.h
include\dcmtk\dcmsign\dcsignat.h
include\dcmtk\dcmsign\sialgo.h
include\dcmtk\dcmsign\siautopr.h
include\dcmtk\dcmsign\sibrsapr.h
include\dcmtk\dcmsign\sicert.h
include\dcmtk\dcmsign\sicertvf.h
include\dcmtk\dcmsign\sicreapr.h
include\dcmtk\dcmsign\sidsa.h
include\dcmtk\dcmsign\simac.h
include\dcmtk\dcmsign\simaccon.h
include\dcmtk\dcmsign\simd5.h
include\dcmtk\dcmsign\sinullpr.h
include\dcmtk\dcmsign\siprivat.h
include\dcmtk\dcmsign\siripemd.h
include\dcmtk\dcmsign\sirsa.h
include\dcmtk\dcmsign\sisha1.h
include\dcmtk\dcmsign\sisprof.h
include\dcmtk\dcmsign\sitstamp.h
include\dcmtk\dcmsign\sitypes.h
include\dcmtk\dcmsr\dsrbascc.h
include\dcmtk\dcmsr\dsrchecc.h
include\dcmtk\dcmsr\dsrcitem.h
include\dcmtk\dcmsr\dsrcodtn.h
include\dcmtk\dcmsr\dsrcodvl.h
include\dcmtk\dcmsr\dsrcomcc.h
include\dcmtk\dcmsr\dsrcomtn.h
include\dcmtk\dcmsr\dsrcomvl.h
include\dcmtk\dcmsr\dsrcontn.h
include\dcmtk\dcmsr\dsrcsidl.h
include\dcmtk\dcmsr\dsrdattn.h
include\dcmtk\dcmsr\dsrdoc.h
include\dcmtk\dcmsr\dsrdoctn.h
include\dcmtk\dcmsr\dsrdoctr.h
include\dcmtk\dcmsr\dsrdtitn.h
include\dcmtk\dcmsr\dsrenhcc.h
include\dcmtk\dcmsr\dsrimgfr.h
include\dcmtk\dcmsr\dsrimgtn.h
include\dcmtk\dcmsr\dsrimgvl.h
include\dcmtk\dcmsr\dsriodcc.h
include\dcmtk\dcmsr\dsrkeycc.h
include\dcmtk\dcmsr\dsrmamcc.h
include\dcmtk\dcmsr\dsrnumtn.h
include\dcmtk\dcmsr\dsrnumvl.h
include\dcmtk\dcmsr\dsrpnmtn.h
include\dcmtk\dcmsr\dsrprocc.h
include\dcmtk\dcmsr\dsrreftn.h
include\dcmtk\dcmsr\dsrscogr.h
include\dcmtk\dcmsr\dsrscotn.h
include\dcmtk\dcmsr\dsrscovl.h
include\dcmtk\dcmsr\dsrsoprf.h
include\dcmtk\dcmsr\dsrstrvl.h
include\dcmtk\dcmsr\dsrtcodt.h
include\dcmtk\dcmsr\dsrtcosp.h
include\dcmtk\dcmsr\dsrtcotn.h
include\dcmtk\dcmsr\dsrtcoto.h
include\dcmtk\dcmsr\dsrtcovl.h
include\dcmtk\dcmsr\dsrtextn.h
include\dcmtk\dcmsr\dsrtimtn.h
include\dcmtk\dcmsr\dsrtlist.h
include\dcmtk\dcmsr\dsrtncsr.h
include\dcmtk\dcmsr\dsrtree.h
include\dcmtk\dcmsr\dsrtypes.h
include\dcmtk\dcmsr\dsruidtn.h
include\dcmtk\dcmsr\dsrwavch.h
include\dcmtk\dcmsr\dsrwavtn.h
include\dcmtk\dcmsr\dsrwavvl.h
include\dcmtk\dcmsr\dsrxmlc.h
include\dcmtk\dcmsr\dsrxmld.h
include\dcmtk\dcmsr\dsrxrdcc.h
include\dcmtk\dcmtls\tlslayer.h
include\dcmtk\dcmtls\tlstrans.h
include\dcmtk\dcmwlm\wlds.h
include\dcmtk\dcmwlm\wldsfs.h
include\dcmtk\dcmwlm\wlfsim.h
include\dcmtk\dcmwlm\wlmactmg.h
include\dcmtk\dcmwlm\wltypdef.h
include\dcmtk\ofstd\ofalgo.h
include\dcmtk\ofstd\ofbmanip.h
include\dcmtk\ofstd\ofcast.h
include\dcmtk\ofstd\ofcmdln.h
include\dcmtk\ofstd\ofconapp.h
include\dcmtk\ofstd\ofcond.h
include\dcmtk\ofstd\ofconfig.h
include\dcmtk\ofstd\ofconsol.h
include\dcmtk\ofstd\ofcrc32.h
include\dcmtk\ofstd\ofdate.h
include\dcmtk\ofstd\ofdatime.h
include\dcmtk\ofstd\offname.h
include\dcmtk\ofstd\ofglobal.h
include\dcmtk\ofstd\oflist.h
include\dcmtk\ofstd\oflogfil.h
include\dcmtk\ofstd\ofoset.h
include\dcmtk\ofstd\ofset.h
include\dcmtk\ofstd\ofsetit.h
include\dcmtk\ofstd\ofstack.h
include\dcmtk\ofstd\ofstd.h
include\dcmtk\ofstd\ofstdinc.h
include\dcmtk\ofstd\ofstream.h
include\dcmtk\ofstd\ofstring.h
include\dcmtk\ofstd\ofthread.h
include\dcmtk\ofstd\oftime.h
include\dcmtk\ofstd\oftimer.h
include\dcmtk\ofstd\oftypes.h
include\dcmtk\ofstd\ofuoset.h
lib\dcm2xml.dtd
lib\dcmdata.lib
lib\dcmdsig.lib
lib\dcmimage.lib
lib\dcmimgle.lib
lib\dcmjpeg.lib
lib\dcmnet.lib
lib\dcmpstat.lib
lib\dcmqrdb.lib
lib\dcmsr.lib
lib\dcmtls.lib
lib\dcmwlm.lib
lib\dicom.dic
lib\dsr2xml.xsd
lib\ijg12.lib
lib\ijg16.lib
lib\ijg8.lib
lib\ofstd.lib
lib\private.dic
share\data
share\doc
share\data\camera.lut
share\data\dumppat.txt
share\data\monitor.lut
share\data\philips.lut
share\data\printer.lut
share\data\scanner.lut
share\doc\html
share\doc\asconfig.txt
share\doc\ciphers.txt
share\doc\COPYRIGHT
share\doc\datadict.txt
share\doc\dcmqrcnf.txt
share\doc\dcmqrset.txt
share\doc\FAQ
share\doc\HISTORY
share\doc\randseed.txt
share\doc\testing.txt
share\doc\wwwapp.txt
No tags attached.
Issue History
2011-07-08 11:56Dan ThillNew Issue
2011-07-23 04:45Niels DekkerNote Added: 0027061
2011-07-23 04:52Niels DekkerNote Edited: 0027061bug_revision_view_page.php?bugnote_id=27061#r380
2011-08-01 10:47David ColeAssigned To => David Cole
2011-08-01 10:47David ColeStatusnew => assigned
2011-08-01 10:47David ColeTarget Version => CMake 2.8.6
2011-08-01 11:15Dan ThillNote Added: 0027140
2011-08-09 15:19David ColeNote Added: 0027186
2011-08-09 15:19David ColeStatusassigned => resolved
2011-08-09 15:19David ColeFixed in Version => CMake 2.8.6
2011-08-09 15:19David ColeResolutionopen => fixed
2012-01-02 15:56David ColeNote Added: 0028123
2012-01-02 15:56David ColeStatusresolved => closed

Notes
(0027061)
Niels Dekker   
2011-07-23 04:45   
(edited on: 2011-07-23 04:52)
I can imagine that it would be useful to you to add ${DCMTK_DIR}/include/dcmtk/${dir} to the PATHS of the find_path call (line 111 of FindDCMTK.cmake, as you suggest).

However, personally I'm not using DCMTK via its own CMake INSTALL target, but instead, directly from its source tree. I guess that's a common use case as well. When I retrieve DCMTK directly from <http://git.dcmtk.org>, [^] its include directory paths look as follows:

  My3rdPartySourceDir\dcmtk\dcmdata\include\dcmtk\dcmdata
  My3rdPartySourceDir\dcmtk\dcmimage\include\dcmtk\dcmimage
  ...
  My3rdPartySourceDir\dcmtk\oflog\include\dcmtk\oflog
  My3rdPartySourceDir\dcmtk\ofstd\include\dcmtk\ofstd

So in order to support using DCMTK directly from its source tree, the following should (also) be added to the PATHS of of the find_path call:

  ${DCMTK_DIR}/${dir}/include/dcmtk/${dir}

As I tested, running CMake 2.8.5 on Windows 7.

So I would suggest to add both ${DCMTK_DIR}/include/dcmtk/${dir} and ${DCMTK_DIR}/${dir}/include/dcmtk/${dir} to the find_path call.

What do you think?

-- Niels

(0027140)
Dan Thill   
2011-08-01 11:15   
I don't see any reason not to support both methods--I completely understand the perspective of the implementor. Just for clarity, my project does the following:

- download dcmtk source
- perform an out-of-source cmake build of DCMTK
- let it install to a directory via the INSTALL target
- I copy that final tree around. I have many regression test systems, other developers, etc.
- Project then tries to use FindDCMTK to locate tree.

Honestly, I ended up hacking together my own FindDCMTK module to work around it because of this issue and the fact our existing source code all uses DCMTK via a single toplevel include directory, e.g., "#include <dcmtk/dcmdata/dcitem.h>". The stock FindDCMTK exports each subdirectory separately as a DCMTK_*_INCLUDE_DIR. I only need the single toplevel one--which only makes sense if you use DCMTK that's been INSTALL'd. But that's a completely separate workflow and beyond the scope of this bug report.
(0027186)
David Cole   
2011-08-09 15:19   
Fix pushed to CMake 'next':

  http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0167ceaf98c78f40532fc187b35440d033ac837e [^]
(0028123)
David Cole   
2012-01-02 15:56   
Closing resolved issues that have not been updated in more than 4 months.