FindDCMTK.cmake 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. # - find DCMTK libraries and applications
  2. #
  3. # DCMTK_INCLUDE_DIR - Directories to include to use DCMTK
  4. # DCMTK_LIBRARIES - Files to link against to use DCMTK
  5. # DCMTK_FOUND - If false, don't try to use DCMTK
  6. # DCMTK_DIR - (optional) Source directory for DCMTK
  7. #
  8. # DCMTK_DIR can be used to make it simpler to find the various include
  9. # directories and compiled libraries if you've just compiled it in the
  10. # source tree. Just set it to the root of the tree where you extracted
  11. # the source (default to /usr/include/dcmtk/)
  12. #=============================================================================
  13. # Copyright 2004-2009 Kitware, Inc.
  14. # Copyright 2009 Mathieu Malaterre <mathieu.malaterre@gmail.com>
  15. #
  16. # Distributed under the OSI-approved BSD License (the "License");
  17. # see accompanying file Copyright.txt for details.
  18. #
  19. # This software is distributed WITHOUT ANY WARRANTY; without even the
  20. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  21. # See the License for more information.
  22. #=============================================================================
  23. # (To distributed this file outside of CMake, substitute the full
  24. # License text for the above reference.)
  25. #
  26. # Written for VXL by Amitha Perera.
  27. # Upgraded for GDCM by Mathieu Malaterre.
  28. #
  29. IF( NOT DCMTK_FOUND )
  30. SET( DCMTK_DIR "/usr/include/dcmtk/"
  31. CACHE PATH "Root of DCMTK source tree (optional)." )
  32. MARK_AS_ADVANCED( DCMTK_DIR )
  33. ENDIF( NOT DCMTK_FOUND )
  34. FIND_PATH( DCMTK_config_INCLUDE_DIR osconfig.h
  35. PATHS
  36. ${DCMTK_DIR}/config/include
  37. ${DCMTK_DIR}/config
  38. ${DCMTK_DIR}/include/dcmtk/config
  39. ${DCMTK_DIR}/include
  40. NO_DEFAULT_PATH
  41. )
  42. FIND_PATH( DCMTK_ofstd_INCLUDE_DIR ofstdinc.h
  43. PATHS
  44. ${DCMTK_DIR}/ofstd/include
  45. ${DCMTK_DIR}/ofstd
  46. ${DCMTK_DIR}/include/ofstd
  47. ${DCMTK_DIR}/include/dcmtk/ofstd
  48. NO_DEFAULT_PATH
  49. )
  50. FIND_LIBRARY( DCMTK_ofstd_LIBRARY ofstd
  51. PATHS
  52. ${DCMTK_DIR}/ofstd/libsrc
  53. ${DCMTK_DIR}/ofstd/libsrc/Release
  54. ${DCMTK_DIR}/ofstd/libsrc/Debug
  55. ${DCMTK_DIR}/ofstd/Release
  56. ${DCMTK_DIR}/ofstd/Debug
  57. ${DCMTK_DIR}/lib
  58. NO_DEFAULT_PATH
  59. )
  60. FIND_PATH( DCMTK_oflog_INCLUDE_DIR logger.h
  61. PATHS
  62. ${DCMTK_DIR}/oflog/include
  63. ${DCMTK_DIR}/oflog
  64. ${DCMTK_DIR}/include/oflog
  65. ${DCMTK_DIR}/include/dcmtk/oflog
  66. NO_DEFAULT_PATH
  67. )
  68. FIND_LIBRARY( DCMTK_oflog_LIBRARY oflog
  69. PATHS
  70. ${DCMTK_DIR}/oflog/libsrc
  71. ${DCMTK_DIR}/oflog/libsrc/Release
  72. ${DCMTK_DIR}/oflog/libsrc/Debug
  73. ${DCMTK_DIR}/oflog/Release
  74. ${DCMTK_DIR}/oflog/Debug
  75. ${DCMTK_DIR}/lib
  76. NO_DEFAULT_PATH
  77. )
  78. FIND_PATH( DCMTK_dcmdata_INCLUDE_DIR dctypes.h
  79. PATHS
  80. ${DCMTK_DIR}/include/dcmdata
  81. ${DCMTK_DIR}/include/dcmtk/dcmdata
  82. ${DCMTK_DIR}/dcmdata
  83. ${DCMTK_DIR}/dcmdata/include
  84. NO_DEFAULT_PATH
  85. )
  86. FIND_LIBRARY( DCMTK_dcmdata_LIBRARY dcmdata
  87. PATHS
  88. ${DCMTK_DIR}/dcmdata/libsrc
  89. ${DCMTK_DIR}/dcmdata/libsrc/Release
  90. ${DCMTK_DIR}/dcmdata/libsrc/Debug
  91. ${DCMTK_DIR}/dcmdata/Release
  92. ${DCMTK_DIR}/dcmdata/Debug
  93. ${DCMTK_DIR}/lib
  94. NO_DEFAULT_PATH
  95. )
  96. FIND_PATH( DCMTK_dcmjpeg_INCLUDE_DIR djdecode.h
  97. PATHS
  98. ${DCMTK_DIR}/include/dcmjpeg
  99. ${DCMTK_DIR}/include/dcmtk/dcmjpeg
  100. ${DCMTK_DIR}/dcmjpeg
  101. ${DCMTK_DIR}/dcmjpeg/include
  102. NO_DEFAULT_PATH
  103. )
  104. FIND_LIBRARY( DCMTK_dcmjpeg_LIBRARY dcmjpeg
  105. PATHS
  106. ${DCMTK_DIR}/dcmjpeg/libsrc
  107. ${DCMTK_DIR}/dcmjpeg/libsrc/Release
  108. ${DCMTK_DIR}/dcmjpeg/libsrc/Debug
  109. ${DCMTK_DIR}/dcmjpeg/Release
  110. ${DCMTK_DIR}/dcmjpeg/Debug
  111. ${DCMTK_DIR}/lib
  112. NO_DEFAULT_PATH
  113. )
  114. FIND_LIBRARY( DCMTK_ijg12_LIBRARY ijg12
  115. PATHS
  116. ${DCMTK_DIR}/dcmjpeg/libsrc
  117. ${DCMTK_DIR}/dcmjpeg/libsrc/Release
  118. ${DCMTK_DIR}/dcmjpeg/libsrc/Debug
  119. ${DCMTK_DIR}/dcmjpeg/Release
  120. ${DCMTK_DIR}/dcmjpeg/Debug
  121. ${DCMTK_DIR}/lib
  122. NO_DEFAULT_PATH
  123. )
  124. FIND_LIBRARY( DCMTK_ijg16_LIBRARY ijg16
  125. PATHS
  126. ${DCMTK_DIR}/dcmjpeg/libsrc
  127. ${DCMTK_DIR}/dcmjpeg/libsrc/Release
  128. ${DCMTK_DIR}/dcmjpeg/libsrc/Debug
  129. ${DCMTK_DIR}/dcmjpeg/Release
  130. ${DCMTK_DIR}/dcmjpeg/Debug
  131. ${DCMTK_DIR}/lib
  132. NO_DEFAULT_PATH
  133. )
  134. FIND_LIBRARY( DCMTK_ijg8_LIBRARY ijg8
  135. PATHS
  136. ${DCMTK_DIR}/dcmjpeg/libsrc
  137. ${DCMTK_DIR}/dcmjpeg/libsrc/Release
  138. ${DCMTK_DIR}/dcmjpeg/libsrc/Debug
  139. ${DCMTK_DIR}/dcmjpeg/Release
  140. ${DCMTK_DIR}/dcmjpeg/Debug
  141. ${DCMTK_DIR}/lib
  142. NO_DEFAULT_PATH
  143. )
  144. FIND_PATH( DCMTK_dcmnet_INCLUDE_DIR dimse.h
  145. PATHS
  146. ${DCMTK_DIR}/include/dcmnet
  147. ${DCMTK_DIR}/include/dcmtk/dcmnet
  148. ${DCMTK_DIR}/dcmnet
  149. ${DCMTK_DIR}/dcmnet/include
  150. NO_DEFAULT_PATH
  151. )
  152. FIND_LIBRARY( DCMTK_dcmnet_LIBRARY dcmnet
  153. PATHS
  154. ${DCMTK_DIR}/dcmnet/libsrc
  155. ${DCMTK_DIR}/dcmnet/libsrc/Release
  156. ${DCMTK_DIR}/dcmnet/libsrc/Debug
  157. ${DCMTK_DIR}/dcmnet/Release
  158. ${DCMTK_DIR}/dcmnet/Debug
  159. ${DCMTK_DIR}/lib
  160. NO_DEFAULT_PATH
  161. )
  162. FIND_PATH( DCMTK_dcmimgle_INCLUDE_DIR dcmimage.h
  163. PATHS
  164. ${DCMTK_DIR}/dcmimgle/include
  165. ${DCMTK_DIR}/dcmimgle
  166. ${DCMTK_DIR}/include/dcmimgle
  167. ${DCMTK_DIR}/include/dcmtk/dcmimgle
  168. NO_DEFAULT_PATH
  169. )
  170. FIND_LIBRARY( DCMTK_dcmimgle_LIBRARY dcmimgle
  171. PATHS
  172. ${DCMTK_DIR}/dcmimgle/libsrc
  173. ${DCMTK_DIR}/dcmimgle/libsrc/Release
  174. ${DCMTK_DIR}/dcmimgle/libsrc/Debug
  175. ${DCMTK_DIR}/dcmimgle/Release
  176. ${DCMTK_DIR}/dcmimgle/Debug
  177. ${DCMTK_DIR}/lib
  178. NO_DEFAULT_PATH
  179. )
  180. FIND_PATH( DCMTK_dcmimage_INCLUDE_DIR diregist.h
  181. PATHS
  182. ${DCMTK_DIR}/dcmimage/include
  183. ${DCMTK_DIR}/dcmimage
  184. ${DCMTK_DIR}/include/dcmimage
  185. ${DCMTK_DIR}/include/dcmtk/dcmimage
  186. NO_DEFAULT_PATH
  187. )
  188. FIND_LIBRARY( DCMTK_dcmimage_LIBRARY dcmimage
  189. PATHS
  190. ${DCMTK_DIR}/dcmimage/libsrc
  191. ${DCMTK_DIR}/dcmimage/libsrc/Release
  192. ${DCMTK_DIR}/dcmimage/libsrc/Debug
  193. ${DCMTK_DIR}/dcmimage/Release
  194. ${DCMTK_DIR}/dcmimage/Debug
  195. ${DCMTK_DIR}/lib
  196. NO_DEFAULT_PATH
  197. )
  198. # MM: I could not find this library on debian system / dcmtk 3.5.4
  199. # Michael Onken: this module is now called dcmqrdb. I will re-work that script soon...
  200. FIND_LIBRARY(DCMTK_imagedb_LIBRARY imagedb
  201. PATHS
  202. ${DCMTK_DIR}/imagectn/libsrc/Release
  203. ${DCMTK_DIR}/imagectn/libsrc/
  204. ${DCMTK_DIR}/imagectn/libsrc/Debug
  205. NO_DEFAULT_PATH
  206. )
  207. IF( DCMTK_config_INCLUDE_DIR
  208. AND DCMTK_ofstd_INCLUDE_DIR
  209. AND DCMTK_ofstd_LIBRARY
  210. AND DCMTK_oflog_INCLUDE_DIR
  211. AND DCMTK_oflog_LIBRARY
  212. AND DCMTK_dcmdata_INCLUDE_DIR
  213. AND DCMTK_dcmdata_LIBRARY
  214. AND DCMTK_dcmjpeg_INCLUDE_DIR
  215. AND DCMTK_dcmjpeg_LIBRARY
  216. AND DCMTK_dcmnet_INCLUDE_DIR
  217. AND DCMTK_dcmnet_LIBRARY
  218. AND DCMTK_dcmimgle_INCLUDE_DIR
  219. AND DCMTK_dcmimgle_LIBRARY
  220. AND DCMTK_dcmimage_INCLUDE_DIR
  221. AND DCMTK_dcmimage_LIBRARY)
  222. # # Wrap library is required on Linux
  223. # IF(NOT WIN32)
  224. # FIND_LIBRARY(DCMTK_wrap_LIBRARY wrap)
  225. # MESSAGE(DCMTK_wrap_LIBRARY:${DCMTK_wrap_LIBRARY})
  226. # IF(NOT DCMTK_wrap_LIBRARY)
  227. # MESSAGE(FATAL_ERROR "error: Wrap library is required to use DCMTK. "
  228. # "On Ubuntu, you could install it using 'sudo apt-get libwrap0'")
  229. # ENDIF()
  230. # ENDIF()
  231. SET(CMAKE_THREAD_LIBS_INIT)
  232. IF(DCMTK_oflog_LIBRARY)
  233. # Hack - Not having a DCMTKConfig.cmake file to read the settings from, we will attempt to
  234. # find the library in all cases.
  235. # Ideally, pthread library should be discovered only if DCMTK_WITH_THREADS is enabled.
  236. SET(CMAKE_THREAD_PREFER_PTHREAD TRUE)
  237. FIND_PACKAGE(Threads)
  238. ENDIF()
  239. SET( DCMTK_FOUND "YES" )
  240. SET( DCMTK_INCLUDE_DIR
  241. ${DCMTK_DIR}/include
  242. ${DCMTK_config_INCLUDE_DIR}
  243. ${DCMTK_ofstd_INCLUDE_DIR}
  244. ${DCMTK_oflog_INCLUDE_DIR}
  245. ${DCMTK_dcmdata_INCLUDE_DIR}
  246. ${DCMTK_dcmjpeg_INCLUDE_DIR}
  247. ${DCMTK_dcmnet_INCLUDE_DIR}
  248. ${DCMTK_dcmimgle_INCLUDE_DIR}
  249. ${DCMTK_dcmimage_INCLUDE_DIR}
  250. )
  251. SET( DCMTK_LIBRARIES
  252. ${DCMTK_dcmimage_LIBRARY}
  253. ${DCMTK_dcmimgle_LIBRARY}
  254. ${DCMTK_dcmnet_LIBRARY}
  255. ${DCMTK_dcmjpeg_LIBRARY}
  256. ${DCMTK_dcmdata_LIBRARY}
  257. ${DCMTK_ijg8_LIBRARY}
  258. ${DCMTK_ijg12_LIBRARY}
  259. ${DCMTK_ijg16_LIBRARY}
  260. ${DCMTK_oflog_LIBRARY}
  261. ${DCMTK_ofstd_LIBRARY}
  262. ${DCMTK_config_LIBRARY}
  263. ${CMAKE_THREAD_LIBS_INIT}
  264. )
  265. IF(DCMTK_imagedb_LIBRARY)
  266. SET( DCMTK_LIBRARIES
  267. ${DCMTK_LIBRARIES}
  268. ${DCMTK_imagedb_LIBRARY}
  269. )
  270. ENDIF(DCMTK_imagedb_LIBRARY)
  271. IF( WIN32 )
  272. SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} ws2_32 netapi32 wsock32)
  273. ENDIF( WIN32 )
  274. # IF (NOT WIN32)
  275. # SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} ${DCMTK_wrap_LIBRARY} )
  276. # ENDIF()
  277. ENDIF()
  278. FIND_PROGRAM(DCMTK_DCMDUMP_EXECUTABLE dcmdump
  279. PATHS
  280. ${DCMTK_DIR}/bin
  281. NO_DEFAULT_PATH
  282. )
  283. FIND_PROGRAM(DCMTK_DCMDJPEG_EXECUTABLE dcmdjpeg
  284. PATHS
  285. ${DCMTK_DIR}/bin
  286. NO_DEFAULT_PATH
  287. )
  288. FIND_PROGRAM(DCMTK_DCMDRLE_EXECUTABLE dcmdrle
  289. PATHS
  290. ${DCMTK_DIR}/bin
  291. NO_DEFAULT_PATH
  292. )
  293. FIND_PROGRAM(DCMTK_DCMQRSCP_EXECUTABLE dcmqrscp
  294. PATHS
  295. ${DCMTK_DIR}/bin
  296. NO_DEFAULT_PATH
  297. )
  298. FIND_PROGRAM(DCMTK_STORESCU_EXECUTABLE storescu
  299. PATHS
  300. ${DCMTK_DIR}/bin
  301. NO_DEFAULT_PATH
  302. )
  303. MARK_AS_ADVANCED(
  304. DCMTK_DCMDUMP_EXECUTABLE
  305. DCMTK_DCMDJPEG_EXECUTABLE
  306. DCMTK_DCMDRLE_EXECUTABLE
  307. DCMTK_DCMQRSCP_EXECUTABLE
  308. DCMTK_STORESCU_EXECUTABLE
  309. DCMTK_config_INCLUDE_DIR
  310. DCMTK_dcmdata_INCLUDE_DIR
  311. DCMTK_dcmdata_LIBRARY
  312. DCMTK_dcmnet_INCLUDE_DIR
  313. DCMTK_dcmnet_LIBRARY
  314. DCMTK_dcmimgle_INCLUDE_DIR
  315. DCMTK_dcmimgle_LIBRARY
  316. DCMTK_dcmimage_INCLUDE_DIR
  317. DCMTK_dcmimage_LIBRARY
  318. DCMTK_imagedb_LIBRARY
  319. DCMTK_ofstd_INCLUDE_DIR
  320. DCMTK_ofstd_LIBRARY
  321. DCMTK_oflog_INCLUDE_DIR
  322. DCMTK_oflog_LIBRARY
  323. )