]> Creatis software - gdcm.git/blob - Dicts/CMakeLists.txt
708d663090219fdd98d8133235ff5c1b2edfe7b9
[gdcm.git] / Dicts / CMakeLists.txt
1 #-----------------------------------------------------------------------------
2 # DICOM dictionary stuff
3
4
5 INSTALL_FILES(${GDCM_DATA_DIR} FILES 
6   dicomV3.dic
7   dicomVR.dic
8   dicomTS.dic
9   DicomDir.dic
10 )
11
12 # Nice trick to avoid creating a .h file each time we compile gdcm
13 # Since CONFIGURE_FILE do a 'copy if different'
14 # We have to write the file here since is contains 'DICOM_DICTIONARY'
15 # Which is a variable afterward...
16 #FILE(WRITE "/tmp/output.h.in" "@DICOM_DICTIONARY@" )
17
18 # Following code contributing by Andy Cedilnik
19 SET(INFILE "dicomV3.dic")
20
21 FILE(READ "${INFILE}" ENT)
22
23 STRING(REGEX REPLACE "\n" ";" ENT "${ENT}")
24 SET(DICOM_DICTIONARY
25   "void FillDefault()\n{"
26 )
27
28 FOREACH(line ${ENT})
29   STRING(REGEX REPLACE
30 #    "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([A-Z]+) ([A-Z]+) (.*)([ \(RET\)]*)$"
31    # FIXME ? is not properly used, just luck
32     "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([A-Z]+) ([A-Z?]+) (.*)$"
33 #    "   { \\1, \\2, \"\\3\" , \"\\4\" , \"\\5\", \"\\6\"}," nline "${line}")
34 #    "   { \\1, \\2, \"\\3\" , \"\\4\" , \"\\5\"}," nline "${line}")
35     "  AddNewEntry( DictEntry ( 0x\\1, 0x\\2, \"\\3\" , \"\\4\" , \"\\5\"));" nline "${line}")
36   SET(DICOM_DICTIONARY "${DICOM_DICTIONARY}\n${nline}")
37 ENDFOREACH(line)
38
39 SET(DICOM_DICTIONARY "${DICOM_DICTIONARY} \n }")
40
41 # See above
42 CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/gdcmDefaultDict.h.in" "${GDCM_BINARY_DIR}/gdcmDefaultDict.h")
43
44 #MESSAGE("${DICOM_DICTIONARY}")
45
46 FILE(READ "dicomV3VM2004.dic" ENT)
47 STRING(REGEX REPLACE "\n" ";" ENT "${ENT}")
48 SET(DICOM_DICTIONARY2 "")
49
50 FOREACH(line ${ENT})
51   STRING(REGEX REPLACE
52 #    "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([A-Z]+) ([A-Z]+) (.*)([ \(RET\)]*)$"
53     "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ([A-Z]+) ([0-9]|[1]-[0-9n]|[2]-[2][n]|[3]-[3][n]) (.*)$"
54 #    "   { \\1, \\2, \"\\3\" , \"\\4\" , \"\\5\", \"\\6\"}," nline "${line}")
55     "   { \\1, \\2, \"\\3\" , \"\\4\" , \"\\5\"}," nline "${line}")
56   SET(DICOM_DICTIONARY2 "${DICOM_DICTIONARY2}\n${nline}")
57 ENDFOREACH(line)
58
59 #MESSAGE("${DICOM_DICTIONARY2}")
60