forked from InsightSoftwareConsortium/ITK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
WrapBasicTypes.cmake
124 lines (102 loc) · 4.35 KB
/
WrapBasicTypes.cmake
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
###############################################################################
# Set up variables to store "mangled names" and proper C++ type names for the
# basic types.
###############################################################################
SET(ITKT_UC "unsigned char") # Type
SET(ITKM_UC "UC") # Mangle
SET(ITKT_US "unsigned short") # Type
SET(ITKM_US "US") # Mangle
SET(ITKT_UI "unsigned int") # Type
SET(ITKM_UI "UI") # Mangle
SET(ITKT_UL "unsigned long") # Type
SET(ITKM_UL "UL") # Mangle
SET(ITKT_SC "signed char") # Type
SET(ITKM_SC "SC") # Mangle
SET(ITKT_SS "signed short") # Type
SET(ITKM_SS "SS") # Mangle
SET(ITKT_SI "signed int") # Type
SET(ITKM_SI "SI") # Mangle
SET(ITKT_SL "signed long") # Type
SET(ITKM_SL "SL") # Mangle
SET(ITKT_F "float") # Type
SET(ITKM_F "F") # Mangle
SET(ITKT_D "double") # Type
SET(ITKM_D "D") # Mangle
SET(ITKT_LD "long double") # Type
SET(ITKM_LD "LD") # Mangle
SET(ITKT_B "bool") # Type
SET(ITKM_B "B") # Mangle
###############################################################################
# Create some variable which can be used later
###############################################################################
SET(EXPLICIT_ITK_INT "")
IF(EXPLICIT_unsigned_char)
SET(EXPLICIT_ITK_INT ${EXPLICIT_ITK_INT} "UC")
ENDIF(EXPLICIT_unsigned_char)
IF(EXPLICIT_unsigned_long)
SET(EXPLICIT_ITK_INT ${EXPLICIT_ITK_INT} "UL")
ENDIF(EXPLICIT_unsigned_long)
IF(EXPLICIT_unsigned_short)
SET(EXPLICIT_ITK_INT ${EXPLICIT_ITK_INT} "US")
ENDIF(EXPLICIT_unsigned_short)
IF(EXPLICIT_unsigned_int)
SET(EXPLICIT_ITK_INT ${EXPLICIT_ITK_INT} "UI")
ENDIF(EXPLICIT_unsigned_int)
SET(EXPLICIT_ITK_SIGN_INT "")
IF(EXPLICIT_signed_char)
SET(EXPLICIT_ITK_SIGN_INT ${EXPLICIT_ITK_SIGN_INT} "SC")
ENDIF(EXPLICIT_signed_char)
IF(EXPLICIT_signed_long)
SET(EXPLICIT_ITK_SIGN_INT ${EXPLICIT_ITK_SIGN_INT} "SL")
ENDIF(EXPLICIT_signed_long)
IF(EXPLICIT_signed_short)
SET(EXPLICIT_ITK_SIGN_INT ${EXPLICIT_ITK_SIGN_INT} "SS")
ENDIF(EXPLICIT_signed_short)
IF(EXPLICIT_signed_int)
SET(EXPLICIT_ITK_SIGN_INT ${EXPLICIT_ITK_SIGN_INT} "SI")
ENDIF(EXPLICIT_signed_int)
SET(EXPLICIT_ITK_REAL "")
IF(EXPLICIT_float)
SET(EXPLICIT_ITK_REAL ${EXPLICIT_ITK_REAL} "F")
ENDIF(EXPLICIT_float)
IF(EXPLICIT_double)
SET(EXPLICIT_ITK_REAL ${EXPLICIT_ITK_REAL} "D")
ENDIF(EXPLICIT_double)
SET(EXPLICIT_ITK_RGB "")
IF(EXPLICIT_rgb_unsigned_char)
SET(EXPLICIT_ITK_RGB ${EXPLICIT_ITK_RGB} "RGBUC")
ENDIF(EXPLICIT_rgb_unsigned_char)
IF(EXPLICIT_rgb_unsigned_short)
SET(EXPLICIT_ITK_RGB ${EXPLICIT_ITK_RGB} "RGBUS")
ENDIF(EXPLICIT_rgb_unsigned_short)
SET(EXPLICIT_ITK_VECTOR_REAL "")
IF(EXPLICIT_vector_double)
SET(EXPLICIT_ITK_VECTOR_REAL ${EXPLICIT_ITK_VECTOR_REAL} "VD")
ENDIF(EXPLICIT_vector_double)
IF(EXPLICIT_vector_float)
SET(EXPLICIT_ITK_VECTOR_REAL ${EXPLICIT_ITK_VECTOR_REAL} "VF")
ENDIF(EXPLICIT_vector_float)
SET(EXPLICIT_ITK_COV_VECTOR_REAL "")
IF(EXPLICIT_covariant_vector_double)
SET(EXPLICIT_ITK_COV_VECTOR_REAL ${EXPLICIT_ITK_COV_VECTOR_REAL} "CVD")
ENDIF(EXPLICIT_covariant_vector_double)
IF(EXPLICIT_covariant_vector_float)
SET(EXPLICIT_ITK_COV_VECTOR_REAL ${EXPLICIT_ITK_COV_VECTOR_REAL} "CVF")
ENDIF(EXPLICIT_covariant_vector_float)
SET(EXPLICIT_ITK_COMPLEX_REAL "")
IF(EXPLICIT_complex_double)
SET(EXPLICIT_ITK_COMPLEX_REAL ${EXPLICIT_ITK_VECTOR_REAL} "CD")
ENDIF(EXPLICIT_complex_double)
IF(EXPLICIT_complex_float)
SET(EXPLICIT_ITK_COMPLEX_REAL ${EXPLICIT_ITK_VECTOR_REAL} "CF")
ENDIF(EXPLICIT_complex_float)
SET(EXPLICIT_ITK_INTEGRAL ${EXPLICIT_ITK_SIGN_INT} ${EXPLICIT_ITK_INT})
SET(EXPLICIT_ITK_SCALAR ${EXPLICIT_ITK_INTEGRAL} ${EXPLICIT_ITK_REAL})
SET(EXPLICIT_ITK_VECTOR ${EXPLICIT_ITK_VECTOR_REAL} ${EXPLICIT_ITK_COV_VECTOR_REAL})
SET(EXPLICIT_ITK_ALL_TYPES ${EXPLICIT_ITK_RGB} ${EXPLICIT_ITK_VECTOR} ${EXPLICIT_ITK_SCALAR} ${EXPLICIT_ITK_COMPLEX_REAL})
# Make a list of all selected types "smaller than" a given type
INTERSECTION(SMALLER_THAN_D "F;UL;US;UC;SL;SS;SC" "${EXPLICIT_ITK_SCALAR}")
INTERSECTION(SMALLER_THAN_UL "US;UC;SL;SS;SC" "${EXPLICIT_ITK_INTEGRAL}")
INTERSECTION(SMALLER_THAN_US "UC;SC" "${EXPLICIT_ITK_INTEGRAL}")
INTERSECTION(SMALLER_THAN_SL "US;UC;SS;SC" "${EXPLICIT_ITK_INTEGRAL}")
INTERSECTION(SMALLER_THAN_SS "UC;SC" "${EXPLICIT_ITK_INTEGRAL}")