File: CMakeLists.txt

package info (click to toggle)
gdcm 3.0.24-5
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 27,560 kB
  • sloc: cpp: 203,722; ansic: 76,471; xml: 48,131; python: 3,473; cs: 2,308; java: 1,629; lex: 1,290; sh: 334; php: 128; makefile: 97
file content (358 lines) | stat: -rw-r--r-- 11,388 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
# Define the tests for Media Storage and File Format
# MSFF
set(MSFF_TEST_SRCS
  TestAnonymizer.cxx
  TestAnonymizer4.cxx
  TestDataSetHelper.cxx
  TestEquipmentManufacturer.cxx
  TestFileChangeTransferSyntax1.cxx
  TestFileChangeTransferSyntax2.cxx
  TestFileChangeTransferSyntax3.cxx
  TestFileChangeTransferSyntax4.cxx
  TestFileStreamer1.cxx
  TestFileStreamer2.cxx
  TestFileStreamer3.cxx
  TestFileStreamer4.cxx
  TestFileStreamer5.cxx
  TestFileStreamer6.cxx
  TestFileAnonymizer1.cxx
  TestFileAnonymizer2.cxx
  TestFileAnonymizer3.cxx
  TestFileAnonymizer4.cxx
  TestIconImageFilter.cxx
  #TestIconImageGenerator.cxx
  #TestIconImageGenerator2.cxx
  #TestIconImageGenerator3.cxx
  #TestIconImageGenerator4.cxx
  TestParseXPATH.cxx
  TestValidate.cxx
  TestAnonymizeEvent.cxx
  TestFileDerivation.cxx
  TestSegmentedPaletteColorLookupTable.cxx
  TestPNMCodec.cxx
  TestSpacing.cxx
  TestSerieHelper.cxx
  TestFileExplicitFilter.cxx
  TestImageFragmentSplitter.cxx
  TestTagPath.cxx
  TestDPath.cxx
  TestOrientation.cxx
  TestIconImage.cxx
  TestImageHelper.cxx
  TestImageHelper3.cxx
  TestImageToImageFilter.cxx
  TestImageChangeTransferSyntax1.cxx
  #TestImageChangePhotometricInterpretation.cxx
  #TestImageChangePhotometricInterpretation2.cxx # does not compile on mingw...
  TestImageChangeTransferSyntax2.cxx
  TestImageChangeTransferSyntax3.cxx
  TestImageChangeTransferSyntax4.cxx
  # see below
  TestImageChangeTransferSyntax6.cxx
  TestImageChangeTransferSyntax7.cxx
  TestImageApplyLookupTable.cxx
  TestFileDecompressLookupTable.cxx
  TestImageChangePlanarConfiguration.cxx
  TestCoder.cxx
  TestDecoder.cxx
  TestRescaler1.cxx
  TestRescaler2.cxx
  TestDumper.cxx
  TestDictPrinter.cxx
  TestApplicationEntity.cxx
  TestStringFilter1.cxx
  TestStringFilter2.cxx
  TestStringFilter3.cxx
  TestStringFilter4.cxx
  TestUIDGenerator.cxx
  TestUUIDGenerator.cxx
  #TestUIDGenerator3.cxx
  TestXMLPrinter.cxx
  TestPrinter1.cxx
  TestPrint.cxx
  TestSorter.cxx
  TestImageReader.cxx
  TestStreamImageReader.cxx
  TestImageRegionReader1.cxx
  TestImageRegionReader2.cxx
  TestImageRegionReader3.cxx
  #TestStreamImageWriter.cxx
  TestImageReaderRandomEmpty.cxx
  TestDirectionCosines.cxx
  TestImageWriter.cxx
  TestCodec.cxx
  TestPDFCodec.cxx
  TestRLECodec.cxx
  TestAudioCodec.cxx
  TestImage.cxx
  TestPhotometricInterpretation.cxx
  TestLookupTable.cxx
  TestOverlay.cxx
  TestOverlay3.cxx
  TestCurve.cxx
  TestCurve2.cxx
  TestPixelFormat.cxx
  TestPersonName.cxx
  TestImageCodec.cxx
  TestImageConverter.cxx
  TestJPEGCodec.cxx
  TestRAWCodec.cxx
  TestDICOMDIR.cxx
  TestWaveform.cxx
  TestFiducials.cxx
  TestEncapsulatedDocument.cxx
  TestSpectroscopy.cxx
  TestSurfaceWriter.cxx
  TestSurfaceWriter2.cxx
  )

if(GDCM_DATA_ROOT)
  set(MSFF_TEST_SRCS
    ${MSFF_TEST_SRCS}
    TestCleaner1.cxx
    TestCleaner2.cxx
    TestCleaner3.cxx
    TestCleaner4.cxx
    TestSplitMosaicFilter3.cxx
    TestStrictScanner1.cxx
    TestStrictScanner2_1.cxx
    TestStrictScanner2.cxx
    TestStrictScanner2_2.cxx
    TestScanner1.cxx
    TestScanner2_1.cxx
    TestScanner2.cxx
    TestScanner2_2.cxx
    TestImageHelper2.cxx
    TestPrinter2.cxx
    TestIPPSorter.cxx
    TestIPPSorter2.cxx
    TestIPPSorter3.cxx
    TestCopyDataSet.cxx
    TestDataElementValueAsSQ.cxx
    TestImageWriter2.cxx
    TestDICOMDIRGenerator1.cxx # Must be after TestImageChangeTransferSyntax4
    TestDICOMDIRGenerator2.cxx # Must be after TestImageChangeTransferSyntax4
    )
    # Those tests requires that openssl be linked in:
    if(GDCM_USE_SYSTEM_OPENSSL)
      set(MSFF_TEST_SRCS
        ${MSFF_TEST_SRCS}
        TestAnonymizer2.cxx
        TestAnonymizer3.cxx
        )
    endif()
    if(GDCM_USE_SYSTEM_JSON)
      set(MSFF_TEST_SRCS
        ${MSFF_TEST_SRCS}
        TestJSON1.cxx
      )
    endif()
endif()

# gdcmDataExtra
if(GDCM_DATA_EXTRA_ROOT)
  set(MSFF_TEST_SRCS
    ${MSFF_TEST_SRCS}
    TestSplitMosaicFilter.cxx
    TestSplitMosaicFilter2.cxx
    TestOverlay2.cxx
    TestImageRegionReader4.cxx
    )
endif()

if(GDCM_USE_JPEGLS)
  set(MSFF_TEST_SRCS
    ${MSFF_TEST_SRCS}
    TestImageChangeTransferSyntax5.cxx
    )
endif()

if(GDCM_HAVE_PTHREAD_H)
  set(MSFF_TEST_SRCS
    ${MSFF_TEST_SRCS}
    TestUIDGenerator2.cxx
    )
endif()

if(GDCM_PIXEL_SPACING_DATA_ROOT)
  set(MSFF_TEST_SRCS
    ${MSFF_TEST_SRCS}
    TestImageReaderPixelSpacing.cxx
    )
endif()

# Add the include paths
include_directories(
  "${GDCM_BINARY_DIR}/Source/Common"
  "${GDCM_SOURCE_DIR}/Source/Common"
  "${GDCM_SOURCE_DIR}/Testing/Source/Data"
  "${GDCM_BINARY_DIR}/Testing/Source/Data"
  "${GDCM_SOURCE_DIR}/Source/DataStructureAndEncodingDefinition"
  "${GDCM_SOURCE_DIR}/Source/DataDictionary"
  "${GDCM_SOURCE_DIR}/Source/MediaStorageAndFileFormat"
  )

create_test_sourcelist(MSFFTests gdcmMSFFTests.cxx ${MSFF_TEST_SRCS}
  EXTRA_INCLUDE gdcmTestDriver.h
  )
add_executable(gdcmMSFFTests ${MSFFTests})
target_link_libraries(gdcmMSFFTests gdcmMSFF)
if(GDCM_HAVE_PTHREAD_H)
  target_link_libraries(gdcmMSFFTests pthread)
endif()

# Loop over files and create executables
foreach(name ${MSFF_TEST_SRCS})
  get_filename_component(testname ${name} NAME_WE)
  add_test(NAME ${testname} COMMAND gdcmMSFFTests ${testname})
endforeach()
if(GDCM_DATA_ROOT)
  set_tests_properties(TestDICOMDIRGenerator2 PROPERTIES WILL_FAIL ON)
endif()

# We can only run the dcmtk cross-checking test *only* after all the tests have run
# in particular once the TestWriter is done.
foreach(filename ${gdcm_data_filenames_glob})
  get_filename_component(filename_name ${filename} NAME)
  string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
  if(NOT bad_dicom)
    if(GDCM_TEST_DCMTK)
      if(DCMTK_DCMDUMP_EXECUTABLE)
        # -M : load short tags
        # -dc: disable correction
        add_test(NAME "DCMDUMP-${filename_name}" COMMAND ${DCMTK_DCMDUMP_EXECUTABLE} -M -dc
          "${GDCM_TEMP_DIRECTORY}/TestWriter/${filename_name}")
      endif()
    endif()
  endif()
endforeach()

# Repeat for dcdump
foreach(filename ${gdcm_data_filenames_glob})
  get_filename_component(filename_name ${filename} NAME)
  string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
  if(NOT bad_dicom)
    if(GDCM_TEST_DICOM3TOOLS)
      if(DCDUMP_EXECUTABLE)
        add_test(NAME "DCDUMP-${filename_name}" COMMAND "${DCDUMP_EXECUTABLE}"
          "${GDCM_TEMP_DIRECTORY}/TestWriter/${filename_name}")
      endif()
    endif()
  endif()
endforeach()

# There is a new test that compress all images using the jpeg compression alg:
# try to decompress them with dcmtk:
file(MAKE_DIRECTORY "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax/dcmdjpeg/")

foreach(filename ${gdcm_data_filenames_glob})
  get_filename_component(filename_name ${filename} NAME)
  string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
  if(NOT bad_dicom)
    if(GDCM_TEST_DCMTK)
      if(DCMTK_DCMDJPEG_EXECUTABLE)
        add_test(NAME "DCMDJPEG-${filename_name}" COMMAND ${DCMTK_DCMDJPEG_EXECUTABLE}
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax/${filename_name}"
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax/dcmdjpeg/${filename_name}")
        # Special handling of the DICOMDIR files:
        string(REGEX MATCH ${filename_name} is_dicomdir ${gdcm_data_dicomdir_filenames_glob})
        if(is_dicomdir)
          #message("IS DICOMDIR ${filename_name}")
          set_tests_properties("DCMDJPEG-${filename_name}" PROPERTIES WILL_FAIL TRUE)
        endif()
      endif()
    endif()
  endif()
endforeach()

file(MAKE_DIRECTORY "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax2/dcmdjp2k/")

foreach(filename ${gdcm_data_filenames_glob})
  get_filename_component(filename_name ${filename} NAME)
  string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
  if(NOT bad_dicom)
    if(GDCM_TEST_DCMTK)
      if(DCMTK_DCMDJP2K_EXECUTABLE)
        add_test(NAME "DCMDJP2K-${filename_name}" COMMAND ${DCMTK_DCMDJP2K_EXECUTABLE}
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax2/${filename_name}"
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax2/dcmdjp2k/${filename_name}")
        # Special handling of the DICOMDIR files:
        string(REGEX MATCH ${filename_name} is_dicomdir ${gdcm_data_dicomdir_filenames_glob})
        if(is_dicomdir)
          #message("IS DICOMDIR ${filename_name}")
          set_tests_properties("DCMDJP2K-${filename_name}" PROPERTIES WILL_FAIL TRUE)
        endif()
        #
      endif()
    endif()
  endif()
endforeach()


file(MAKE_DIRECTORY "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax3/dcmdrle/")

foreach(filename ${gdcm_data_filenames_glob})
  get_filename_component(filename_name ${filename} NAME)
  string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
  if(NOT bad_dicom)
    if(GDCM_TEST_DCMTK)
      if(DCMTK_DCMDRLE_EXECUTABLE)
        add_test(NAME "DCMDRLE-${filename_name}" COMMAND ${DCMTK_DCMDRLE_EXECUTABLE}
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax3/${filename_name}"
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax3/dcmdrle/${filename_name}")
        # Special handling of the DICOMDIR files:
        string(REGEX MATCH ${filename_name} is_dicomdir ${gdcm_data_dicomdir_filenames_glob})
        if(is_dicomdir)
          #message("IS DICOMDIR ${filename_name}")
          set_tests_properties("DCMDRLE-${filename_name}" PROPERTIES WILL_FAIL TRUE)
        endif()
        #
      endif()
    endif()
  endif()
endforeach()

file(MAKE_DIRECTORY "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax5/dcmdjpls/")

foreach(filename ${gdcm_data_filenames_glob})
  get_filename_component(filename_name ${filename} NAME)
  string(REGEX MATCH ${filename_name} bad_dicom ${black_list_reader})
  if(NOT bad_dicom)
    if(GDCM_TEST_DCMTK)
      if(DCMTK_DCMDJPLS_EXECUTABLE)
        #if(EXISTS "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax5/${filename_name}")
        add_test(NAME "DCMDJPLS-${filename_name}" COMMAND ${DCMTK_DCMDJPLS_EXECUTABLE}
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax5/${filename_name}"
          "${GDCM_TEMP_DIRECTORY}/TestImageChangeTransferSyntax5/dcmdjpls/${filename_name}")
        # Special handling of the DICOMDIR files:
        string(REGEX MATCH ${filename_name} is_dicomdir ${gdcm_data_dicomdir_filenames_glob})
        if(is_dicomdir)
          #message("IS DICOMDIR ${filename_name}")
          set_tests_properties("DCMDJPLS-${filename_name}" PROPERTIES WILL_FAIL TRUE)
        endif()
        #endif()
        #
      endif()
    endif()
  endif()
endforeach()

# Need to SET_TESTS_PROPERTIES only *after* the loop is done (test need to have been declared first)
if(GDCM_TEST_DCMTK)
  if(GDCM_DATA_ROOT)
    if(DCMTK_DCMDJPLS_EXECUTABLE)
      # No pixel data
      set_tests_properties("DCMDJPLS-ELSCINT1_PMSCT_RLE1.dcm" PROPERTIES WILL_FAIL TRUE)
    endif()
    if(DCMTK_DCMDJPEG_EXECUTABLE)
      # No pixel data
      set_tests_properties("DCMDJPEG-ELSCINT1_PMSCT_RLE1.dcm" PROPERTIES WILL_FAIL TRUE)
    endif()
    if(DCMTK_DCMDRLE_EXECUTABLE)
      # No pixel data
      set_tests_properties("DCMDRLE-ELSCINT1_PMSCT_RLE1.dcm" PROPERTIES WILL_FAIL TRUE)
      # It is missing the very last pixel, so technically is illegal
      set_tests_properties("DCMDRLE-ALOKA_SSD-8-MONO2-RLE-SQ.dcm" PROPERTIES WILL_FAIL TRUE)
    endif()
  endif()
endif()