@@ -15,24 +15,25 @@ get_filename_component(LIBHWLOC_INCLUDE_DIR ${LIBHWLOC_HEADER} DIRECTORY)
15
15
set (LIBHWLOC_INCLUDE_DIRS ${LIBHWLOC_INCLUDE_DIR} )
16
16
17
17
if (LIBHWLOC_INCLUDE_DIR )
18
- if (EXISTS "${LIBHWLOC_INCLUDE_DIR} /hwloc/autogen/config.h" )
19
- file (
20
- STRINGS "${LIBHWLOC_INCLUDE_DIR} /hwloc/autogen/config.h"
21
- LIBHWLOC_VERSION
22
- REGEX
23
- "#define[ \t ]HWLOC_VERSION[ \t ]\" ([0-9]+.[0-9]+.[0-9]+(rc[0-9])?)(-git)?\" "
24
- )
25
- string (
26
- REGEX
27
- REPLACE
28
- "#define[ \t ]HWLOC_VERSION[ \t ]\" ([0-9]+.[0-9]+.[0-9]+(rc[0-9])?)(-git)?\" "
29
- "\\ 1"
30
- LIBHWLOC_VERSION
31
- "${LIBHWLOC_VERSION} " )
18
+ if (EXISTS "${LIBHWLOC_INCLUDE_DIR} /hwloc.h" )
19
+ file (STRINGS "${LIBHWLOC_INCLUDE_DIR} /hwloc.h" LIBHWLOC_API_VERSION
20
+ REGEX "#define[ \t ]HWLOC_API_VERSION[ \t ]0x[0-9]+" )
21
+ string (REGEX
22
+ REPLACE "#define[ \t ]HWLOC_API_VERSION[ \t ](0x[0-9]+)" "\\ 1"
23
+ LIBHWLOC_API_VERSION "${LIBHWLOC_API_VERSION} " )
24
+
25
+ math (EXPR LIBHWLOC_API_PATCH "(${LIBHWLOC_API_VERSION} & 0xFF)" )
26
+ math (EXPR LIBHWLOC_API_MINOR "(${LIBHWLOC_API_VERSION} & 0xFF00) >> 8" )
27
+ math (EXPR LIBHWLOC_API_MAJOR
28
+ "(${LIBHWLOC_API_VERSION} & 0xFF0000) >> 16" )
29
+
30
+ set (LIBHWLOC_API_VERSION
31
+ "${LIBHWLOC_API_MAJOR} .${LIBHWLOC_API_MINOR} .${LIBHWLOC_API_PATCH} " )
32
+
32
33
else ()
33
34
message (
34
35
WARNING
35
- "LIBHWLOC_INCLUDE_DIR found, but header with version info is missing"
36
+ "LIBHWLOC_INCLUDE_DIR found, but header with API version info is missing"
36
37
)
37
38
endif ()
38
39
endif ()
@@ -48,18 +49,19 @@ if(LIBHWLOC_LIBRARY)
48
49
message (STATUS " LIBHWLOC_LIBRARIES = ${LIBHWLOC_LIBRARIES} " )
49
50
message (STATUS " LIBHWLOC_INCLUDE_DIRS = ${LIBHWLOC_INCLUDE_DIRS} " )
50
51
message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
51
- message (STATUS " LIBHWLOC_VERSION = ${LIBHWLOC_VERSION } " )
52
+ message (STATUS " LIBHWLOC_API_VERSION = ${LIBHWLOC_API_VERSION } " )
52
53
if (WINDOWS )
53
54
message (STATUS " LIBHWLOC_DLL_DIRS = ${LIBHWLOC_DLL_DIRS} " )
54
55
endif ()
55
56
56
57
if (LIBHWLOC_FIND_VERSION )
57
- if (NOT LIBHWLOC_VERSION )
58
+ if (NOT LIBHWLOC_API_VERSION )
58
59
message (FATAL_ERROR "Failed to retrieve libhwloc version" )
59
- elseif (NOT LIBHWLOC_VERSION VERSION_GREATER_EQUAL LIBHWLOC_FIND_VERSION )
60
+ elseif (NOT LIBHWLOC_API_VERSION VERSION_GREATER_EQUAL
61
+ LIBHWLOC_FIND_VERSION )
60
62
message (
61
63
FATAL_ERROR
62
- " Required version: ${LIBHWLOC_FIND_VERSION} , found ${LIBHWLOC_VERSION } "
64
+ " Required version: ${LIBHWLOC_FIND_VERSION} , found ${LIBHWLOC_API_VERSION } "
63
65
)
64
66
endif ()
65
67
endif ()
0 commit comments