Imported Upstream version 2.8.10.2
[platform/upstream/cmake.git] / Modules / FindDCMTK.cmake
1 # - find DCMTK libraries and applications
2 #
3
4 #  DCMTK_INCLUDE_DIRS   - Directories to include to use DCMTK
5 #  DCMTK_LIBRARIES     - Files to link against to use DCMTK
6 #  DCMTK_FOUND         - If false, don't try to use DCMTK
7 #  DCMTK_DIR           - (optional) Source directory for DCMTK
8 #
9 # DCMTK_DIR can be used to make it simpler to find the various include
10 # directories and compiled libraries if you've just compiled it in the
11 # source tree. Just set it to the root of the tree where you extracted
12 # the source (default to /usr/include/dcmtk/)
13
14 #=============================================================================
15 # Copyright 2004-2009 Kitware, Inc.
16 # Copyright 2009-2010 Mathieu Malaterre <mathieu.malaterre@gmail.com>
17 # Copyright 2010 Thomas Sondergaard <ts@medical-insight.com>
18 #
19 # Distributed under the OSI-approved BSD License (the "License");
20 # see accompanying file Copyright.txt for details.
21 #
22 # This software is distributed WITHOUT ANY WARRANTY; without even the
23 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24 # See the License for more information.
25 #=============================================================================
26 # (To distribute this file outside of CMake, substitute the full
27 #  License text for the above reference.)
28
29 #
30 # Written for VXL by Amitha Perera.
31 # Upgraded for GDCM by Mathieu Malaterre.
32 # Modified for EasyViz by Thomas Sondergaard.
33 #
34
35 if(NOT DCMTK_FOUND AND NOT DCMTK_DIR)
36   set(DCMTK_DIR
37     "/usr/include/dcmtk/"
38     CACHE
39     PATH
40     "Root of DCMTK source tree (optional).")
41   mark_as_advanced(DCMTK_DIR)
42 endif()
43
44
45 foreach(lib
46     dcmdata
47     dcmimage
48     dcmimgle
49     dcmjpeg
50     dcmnet
51     dcmpstat
52     dcmqrdb
53     dcmsign
54     dcmsr
55     dcmtls
56     ijg12
57     ijg16
58     ijg8
59     ofstd)
60
61   find_library(DCMTK_${lib}_LIBRARY
62     ${lib}
63     PATHS
64     ${DCMTK_DIR}/${lib}/libsrc
65     ${DCMTK_DIR}/${lib}/libsrc/Release
66     ${DCMTK_DIR}/${lib}/libsrc/Debug
67     ${DCMTK_DIR}/${lib}/Release
68     ${DCMTK_DIR}/${lib}/Debug
69     ${DCMTK_DIR}/lib)
70
71   mark_as_advanced(DCMTK_${lib}_LIBRARY)
72
73   if(DCMTK_${lib}_LIBRARY)
74     list(APPEND DCMTK_LIBRARIES ${DCMTK_${lib}_LIBRARY})
75   endif()
76
77 endforeach()
78
79
80 set(DCMTK_config_TEST_HEADER osconfig.h)
81 set(DCMTK_dcmdata_TEST_HEADER dctypes.h)
82 set(DCMTK_dcmimage_TEST_HEADER dicoimg.h)
83 set(DCMTK_dcmimgle_TEST_HEADER dcmimage.h)
84 set(DCMTK_dcmjpeg_TEST_HEADER djdecode.h)
85 set(DCMTK_dcmnet_TEST_HEADER assoc.h)
86 set(DCMTK_dcmpstat_TEST_HEADER dcmpstat.h)
87 set(DCMTK_dcmqrdb_TEST_HEADER dcmqrdba.h)
88 set(DCMTK_dcmsign_TEST_HEADER sicert.h)
89 set(DCMTK_dcmsr_TEST_HEADER dsrtree.h)
90 set(DCMTK_dcmtls_TEST_HEADER tlslayer.h)
91 set(DCMTK_ofstd_TEST_HEADER ofstdinc.h)
92
93 foreach(dir
94     config
95     dcmdata
96     dcmimage
97     dcmimgle
98     dcmjpeg
99     dcmnet
100     dcmpstat
101     dcmqrdb
102     dcmsign
103     dcmsr
104     dcmtls
105     ofstd)
106   find_path(DCMTK_${dir}_INCLUDE_DIR
107     ${DCMTK_${dir}_TEST_HEADER}
108     PATHS
109     ${DCMTK_DIR}/${dir}/include
110     ${DCMTK_DIR}/${dir}
111     ${DCMTK_DIR}/include/${dir}
112     ${DCMTK_DIR}/include/dcmtk/${dir}
113     ${DCMTK_DIR}/${dir}/include/dcmtk/${dir}
114     )
115   mark_as_advanced(DCMTK_${dir}_INCLUDE_DIR)
116
117   if(DCMTK_${dir}_INCLUDE_DIR)
118     list(APPEND
119       DCMTK_INCLUDE_DIRS
120       ${DCMTK_${dir}_INCLUDE_DIR})
121   endif()
122 endforeach()
123
124 if(WIN32)
125   list(APPEND DCMTK_LIBRARIES netapi32 wsock32)
126 endif()
127
128 if(DCMTK_ofstd_INCLUDE_DIR)
129   get_filename_component(DCMTK_dcmtk_INCLUDE_DIR
130     ${DCMTK_ofstd_INCLUDE_DIR}
131     PATH
132     CACHE)
133   list(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_dcmtk_INCLUDE_DIR})
134   mark_as_advanced(DCMTK_dcmtk_INCLUDE_DIR)
135 endif()
136
137 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
138 find_package_handle_standard_args(DCMTK DEFAULT_MSG
139   DCMTK_config_INCLUDE_DIR
140   DCMTK_ofstd_INCLUDE_DIR
141   DCMTK_ofstd_LIBRARY
142   DCMTK_dcmdata_INCLUDE_DIR
143   DCMTK_dcmdata_LIBRARY
144   DCMTK_dcmimgle_INCLUDE_DIR
145   DCMTK_dcmimgle_LIBRARY)
146
147 # Compatibility: This variable is deprecated
148 set(DCMTK_INCLUDE_DIR ${DCMTK_INCLUDE_DIRS})
149
150 foreach(executable dcmdump dcmdjpeg dcmdrle)
151   string(TOUPPER ${executable} EXECUTABLE)
152   find_program(DCMTK_${EXECUTABLE}_EXECUTABLE ${executable} ${DCMTK_DIR}/bin)
153   mark_as_advanced(DCMTK_${EXECUTABLE}_EXECUTABLE)
154 endforeach()