extract version from the include
if(CUDNN_INCLUDE_DIR)
if(EXISTS “
C
U
D
N
N
I
N
C
L
U
D
E
D
I
R
/
c
u
d
n
n
v
e
r
s
i
o
n
.
h
"
)
f
i
l
e
(
R
E
A
D
"
{CUDNN_INCLUDE_DIR}/cudnn_version.h") file(READ "
CUDNNINCLUDEDIR/cudnnversion.h")file(READ"{CUDNN_INCLUDE_DIR}/cudnn_version.h” CUDNN_H_CONTENTS)
else()
file(READ “${CUDNN_INCLUDE_DIR}/cudnn.h” CUDNN_H_CONTENTS)
endif()
string(REGEX MATCH “define CUDNN_MAJOR ([0-9]+)” _ “${CUDNN_H_CONTENTS}”)
set(CUDNN_MAJOR_VERSION
C
M
A
K
E
M
A
T
C
H
1
C
A
C
H
E
I
N
T
E
R
N
A
L
"
"
)
s
t
r
i
n
g
(
R
E
G
E
X
M
A
T
C
H
"
d
e
f
i
n
e
C
U
D
N
N
M
I
N
O
R
(
[
0
−
9
]
+
)
"
"
{CMAKE_MATCH_1} CACHE INTERNAL "") string(REGEX MATCH "define CUDNN_MINOR ([0-9]+)" _ "
CMAKEMATCH1CACHEINTERNAL"")string(REGEXMATCH"defineCUDNNMINOR([0−9]+)""{CUDNN_H_CONTENTS}")
set(CUDNN_MINOR_VERSION
C
M
A
K
E
M
A
T
C
H
1
C
A
C
H
E
I
N
T
E
R
N
A
L
"
"
)
s
t
r
i
n
g
(
R
E
G
E
X
M
A
T
C
H
"
d
e
f
i
n
e
C
U
D
N
N
P
A
T
C
H
L
E
V
E
L
(
[
0
−
9
]
+
)
"
"
{CMAKE_MATCH_1} CACHE INTERNAL "") string(REGEX MATCH "define CUDNN_PATCHLEVEL ([0-9]+)" _ "
CMAKEMATCH1CACHEINTERNAL"")string(REGEXMATCH"defineCUDNNPATCHLEVEL([0−9]+)""{CUDNN_H_CONTENTS}")
set(CUDNN_PATCH_VERSION ${CMAKE_MATCH_1} CACHE INTERNAL “”)
set(CUDNN_VERSION
“
C
U
D
N
N
M
A
J
O
R
V
E
R
S
I
O
N
.
{CUDNN_MAJOR_VERSION}.
CUDNNMAJORVERSION.{CUDNN_MINOR_VERSION}.${CUDNN_PATCH_VERSION}”
CACHE
STRING
“cuDNN version”
)
unset(CUDNN_H_CONTENTS)
endif()