gravatar
ladanyi@tmit.bme.hu
ladanyi@tmit.bme.hu
Check the version number in FindGLPK (#277)
0 1 0
default
1 file changed with 30 insertions and 1 deletions:
↑ Collapse diff ↑
Ignore white space 24 line context
... ...
@@ -5,26 +5,55 @@
5 5

	
6 6
FIND_PATH(GLPK_INCLUDE_DIR
7 7
  glpk.h
8 8
  PATHS ${GLPK_REGKEY}/include
9 9
  HINTS ${GLPK_ROOT_DIR}/include
10 10
)
11 11
FIND_LIBRARY(GLPK_LIBRARY
12 12
  glpk
13 13
  PATHS ${GLPK_REGKEY}/lib
14 14
  HINTS ${GLPK_ROOT_DIR}/lib
15 15
)
16 16

	
17
IF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
18
  FILE(READ ${GLPK_INCLUDE_DIR}/glpk.h GLPK_GLPK_H)
19

	
20
  STRING(REGEX MATCH "define[ ]+GLP_MAJOR_VERSION[ ]+[0-9]+" GLPK_MAJOR_VERSION_LINE "${GLPK_GLPK_H}")
21
  STRING(REGEX REPLACE "define[ ]+GLP_MAJOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MAJOR "${GLPK_MAJOR_VERSION_LINE}")
22

	
23
  STRING(REGEX MATCH "define[ ]+GLP_MINOR_VERSION[ ]+[0-9]+" GLPK_MINOR_VERSION_LINE "${GLPK_GLPK_H}")
24
  STRING(REGEX REPLACE "define[ ]+GLP_MINOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MINOR "${GLPK_MINOR_VERSION_LINE}")
25

	
26
  SET(GLPK_VERSION_STRING "${GLPK_VERSION_MAJOR}.${GLPK_VERSION_MINOR}")
27

	
28
  IF(GLPK_FIND_VERSION)
29
    IF(GLPK_FIND_VERSION_COUNT GREATER 2)
30
      MESSAGE(SEND_ERROR "unexpected version string")
31
    ENDIF(GLPK_FIND_VERSION_COUNT GREATER 2)
32

	
33
    MATH(EXPR GLPK_REQUESTED_VERSION "${GLPK_FIND_VERSION_MAJOR}*100 + ${GLPK_FIND_VERSION_MINOR}")
34
    MATH(EXPR GLPK_FOUND_VERSION "${GLPK_VERSION_MAJOR}*100 + ${GLPK_VERSION_MINOR}")
35

	
36
    IF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
37
      SET(GLPK_PROPER_VERSION_FOUND FALSE)
38
    ELSE(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
39
      SET(GLPK_PROPER_VERSION_FOUND TRUE)
40
    ENDIF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
41
  ELSE(GLPK_FIND_VERSION)
42
    SET(GLPK_PROPER_VERSION_FOUND TRUE)
43
  ENDIF(GLPK_FIND_VERSION)
44
ENDIF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
45

	
17 46
INCLUDE(FindPackageHandleStandardArgs)
18
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR)
47
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_PROPER_VERSION_FOUND)
19 48

	
20 49
IF(GLPK_FOUND)
21 50
  SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR})
22 51
  SET(GLPK_LIBRARIES ${GLPK_LIBRARY})
23 52
  SET(GLPK_BIN_DIR ${GLPK_ROOT_PATH}/bin)
24 53
ENDIF(GLPK_FOUND)
25 54

	
26 55
MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR)
27 56

	
28 57
IF(GLPK_FOUND)
29 58
  SET(LEMON_HAVE_LP TRUE)
30 59
  SET(LEMON_HAVE_MIP TRUE)
0 comments (0 inline)