@@ -132,11 +132,30 @@ endif()
132
132
# Find Clang resource directory with Clang executable.
133
133
134
134
if (NOT CLANG_RESOURCE_DIR )
135
- find_program (CLANG_EXECUTABLE clang )
135
+ find_program (CLANG_EXECUTABLE clang-${Clang_VERSION_MAJOR} NAMES clang )
136
136
if (NOT CLANG_EXECUTABLE )
137
137
message (FATAL_ERROR "clang executable not found." )
138
138
endif ()
139
139
140
+ execute_process (
141
+ COMMAND ${CLANG_EXECUTABLE} -dumpversion
142
+ RESULT_VARIABLE CLANG_DUMP_VERSION_RESULT
143
+ OUTPUT_VARIABLE CLANG_DUMP_VERSION
144
+ ERROR_VARIABLE CLANG_DUMP_VERSION_ERROR
145
+ OUTPUT_STRIP_TRAILING_WHITESPACE
146
+ )
147
+
148
+ if (CLANG_DUMP_VERSION_RESULT )
149
+ message (FATAL_ERROR "Error retrieving Clang executable version. \
150
+ Output:\n ${CLANG_DUMP_VERSION_ERROR} " )
151
+ endif ()
152
+
153
+ if (NOT ${CLANG_DUMP_VERSION} STREQUAL ${Clang_VERSION} )
154
+ message (FATAL_ERROR "Clang libraries and executable versions differs:\n\
155
+ librairies have version ${Clang_VERSION} and executable has version \
156
+ ${CLANG_DUMP_VERSION} ." )
157
+ endif ()
158
+
140
159
execute_process (
141
160
COMMAND ${CLANG_EXECUTABLE} -print-resource-dir
142
161
RESULT_VARIABLE CLANG_FIND_RESOURCE_DIR_RESULT
@@ -147,7 +166,7 @@ if(NOT CLANG_RESOURCE_DIR)
147
166
148
167
if (CLANG_FIND_RESOURCE_DIR_RESULT )
149
168
message (FATAL_ERROR "Error retrieving Clang resource directory with Clang \
150
- executable. Output:\n ${CLANG_FIND_RESOURCE_DIR_ERROR} " )
169
+ executable. Output:\n ${CLANG_FIND_RESOURCE_DIR_ERROR} " )
151
170
endif ()
152
171
endif ()
153
172
0 commit comments