FindDCMTK.cmake 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  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. # Convenient debug macro
  35. SET(debug TRUE)
  36. MACRO(findDcmtkDebug cmake_var)
  37. IF(debug)
  38. MESSAGE(STATUS ${cmake_var}:"${${cmake_var}}")
  39. ENDIF()
  40. ENDMACRO()
  41. FIND_PATH( DCMTK_config_INCLUDE_DIR osconfig.h
  42. ${DCMTK_DIR}/config/include
  43. ${DCMTK_DIR}/config
  44. ${DCMTK_DIR}/include/dcmtk/config
  45. ${DCMTK_DIR}/include
  46. )
  47. FIND_PATH( DCMTK_ofstd_INCLUDE_DIR ofstdinc.h
  48. ${DCMTK_DIR}/ofstd/include
  49. ${DCMTK_DIR}/ofstd
  50. ${DCMTK_DIR}/include/ofstd
  51. ${DCMTK_DIR}/include/dcmtk/ofstd
  52. )
  53. FIND_LIBRARY( DCMTK_ofstd_LIBRARY ofstd
  54. ${DCMTK_DIR}/ofstd/libsrc
  55. ${DCMTK_DIR}/ofstd/libsrc/Release
  56. ${DCMTK_DIR}/ofstd/libsrc/Debug
  57. ${DCMTK_DIR}/ofstd/Release
  58. ${DCMTK_DIR}/ofstd/Debug
  59. ${DCMTK_DIR}/lib
  60. )
  61. FIND_PATH( DCMTK_dcmdata_INCLUDE_DIR dctypes.h
  62. ${DCMTK_DIR}/include/dcmdata
  63. ${DCMTK_DIR}/include/dcmtk/dcmdata
  64. ${DCMTK_DIR}/dcmdata
  65. ${DCMTK_DIR}/dcmdata/include
  66. )
  67. FIND_LIBRARY( DCMTK_dcmdata_LIBRARY dcmdata
  68. ${DCMTK_DIR}/dcmdata/libsrc
  69. ${DCMTK_DIR}/dcmdata/libsrc/Release
  70. ${DCMTK_DIR}/dcmdata/libsrc/Debug
  71. ${DCMTK_DIR}/dcmdata/Release
  72. ${DCMTK_DIR}/dcmdata/Debug
  73. ${DCMTK_DIR}/lib
  74. )
  75. FIND_PATH( DCMTK_dcmimgle_INCLUDE_DIR dcmimage.h
  76. ${DCMTK_DIR}/dcmimgle/include
  77. ${DCMTK_DIR}/dcmimgle
  78. ${DCMTK_DIR}/include/dcmimgle
  79. ${DCMTK_DIR}/include/dcmtk/dcmimgle
  80. )
  81. FIND_LIBRARY( DCMTK_dcmimgle_LIBRARY dcmimgle
  82. ${DCMTK_DIR}/dcmimgle/libsrc
  83. ${DCMTK_DIR}/dcmimgle/libsrc/Release
  84. ${DCMTK_DIR}/dcmimgle/libsrc/Debug
  85. ${DCMTK_DIR}/dcmimgle/Release
  86. ${DCMTK_DIR}/dcmimgle/Debug
  87. ${DCMTK_DIR}/lib
  88. )
  89. # MM: I could not find this library on debian system / dcmtk 3.5.4
  90. FIND_LIBRARY(DCMTK_imagedb_LIBRARY imagedb
  91. ${DCMTK_DIR}/imagectn/libsrc/Release
  92. ${DCMTK_DIR}/imagectn/libsrc/
  93. ${DCMTK_DIR}/imagectn/libsrc/Debug
  94. )
  95. FIND_LIBRARY(DCMTK_dcmnet_LIBRARY dcmnet
  96. ${DCMTK_DIR}/dcmnet/libsrc/Release
  97. ${DCMTK_DIR}/dcmnet/libsrc/Debug
  98. ${DCMTK_DIR}/dcmnet/libsrc/
  99. )
  100. IF( DCMTK_config_INCLUDE_DIR
  101. AND DCMTK_ofstd_INCLUDE_DIR
  102. AND DCMTK_ofstd_LIBRARY
  103. AND DCMTK_dcmdata_INCLUDE_DIR
  104. AND DCMTK_dcmdata_LIBRARY
  105. AND DCMTK_dcmimgle_INCLUDE_DIR
  106. AND DCMTK_dcmimgle_LIBRARY )
  107. # # Wrap library is required on Linux
  108. # IF(NOT WIN32)
  109. # FIND_LIBRARY(DCMTK_wrap_LIBRARY wrap)
  110. # MESSAGE(DCMTK_wrap_LIBRARY:${DCMTK_wrap_LIBRARY})
  111. # IF(NOT DCMTK_wrap_LIBRARY)
  112. # MESSAGE(FATAL_ERROR "error: Wrap library is required to use DCMTK. "
  113. # "On Ubuntu, you could install it using 'sudo apt-get libwrap0'")
  114. # ENDIF()
  115. # ENDIF()
  116. SET( DCMTK_FOUND "YES" )
  117. SET( DCMTK_INCLUDE_DIR
  118. ${DCMTK_config_INCLUDE_DIR}
  119. ${DCMTK_ofstd_INCLUDE_DIR}
  120. ${DCMTK_dcmdata_INCLUDE_DIR}
  121. ${DCMTK_dcmimgle_INCLUDE_DIR}
  122. )
  123. SET( DCMTK_LIBRARIES
  124. ${DCMTK_dcmimgle_LIBRARY}
  125. ${DCMTK_dcmdata_LIBRARY}
  126. ${DCMTK_ofstd_LIBRARY}
  127. ${DCMTK_config_LIBRARY}
  128. )
  129. IF(DCMTK_imagedb_LIBRARY)
  130. SET( DCMTK_LIBRARIES
  131. ${DCMTK_LIBRARIES}
  132. ${DCMTK_imagedb_LIBRARY}
  133. )
  134. ENDIF(DCMTK_imagedb_LIBRARY)
  135. IF(DCMTK_dcmnet_LIBRARY)
  136. SET( DCMTK_LIBRARIES
  137. ${DCMTK_LIBRARIES}
  138. ${DCMTK_dcmnet_LIBRARY}
  139. )
  140. ENDIF(DCMTK_dcmnet_LIBRARY)
  141. IF( WIN32 )
  142. SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} netapi32 )
  143. ENDIF( WIN32 )
  144. # IF (NOT WIN32)
  145. # SET( DCMTK_LIBRARIES ${DCMTK_LIBRARIES} ${DCMTK_wrap_LIBRARY} )
  146. # ENDIF()
  147. ENDIF( DCMTK_config_INCLUDE_DIR
  148. AND DCMTK_ofstd_INCLUDE_DIR
  149. AND DCMTK_ofstd_LIBRARY
  150. AND DCMTK_dcmdata_INCLUDE_DIR
  151. AND DCMTK_dcmdata_LIBRARY
  152. AND DCMTK_dcmimgle_INCLUDE_DIR
  153. AND DCMTK_dcmimgle_LIBRARY )
  154. FIND_PROGRAM(DCMTK_DCMDUMP_EXECUTABLE dcmdump
  155. ${DCMTK_DIR}/bin
  156. )
  157. FIND_PROGRAM(DCMTK_DCMDJPEG_EXECUTABLE dcmdjpeg
  158. ${DCMTK_DIR}/bin
  159. )
  160. FIND_PROGRAM(DCMTK_DCMDRLE_EXECUTABLE dcmdrle
  161. ${DCMTK_DIR}/bin
  162. )
  163. MARK_AS_ADVANCED(
  164. DCMTK_DCMDUMP_EXECUTABLE
  165. DCMTK_DCMDJPEG_EXECUTABLE
  166. DCMTK_DCMDRLE_EXECUTABLE
  167. DCMTK_config_INCLUDE_DIR
  168. DCMTK_dcmdata_INCLUDE_DIR
  169. DCMTK_dcmdata_LIBRARY
  170. DCMTK_dcmimgle_INCLUDE_DIR
  171. DCMTK_dcmimgle_LIBRARY
  172. DCMTK_imagedb_LIBRARY
  173. DCMTK_dcmnet_LIBRARY
  174. DCMTK_ofstd_INCLUDE_DIR
  175. DCMTK_ofstd_LIBRARY
  176. )