Backport relevant parts of bugfixes [ad22262328b3], [61fdd06833a6] and [4add05447ca0] to branch 1.2 (#623)
1 SET(GLPK_ROOT_DIR "" CACHE PATH "GLPK root directory")
3 SET(GLPK_REGKEY "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Glpk;InstallPath]")
4 GET_FILENAME_COMPONENT(GLPK_ROOT_PATH ${GLPK_REGKEY} ABSOLUTE)
6 FIND_PATH(GLPK_INCLUDE_DIR
8 PATHS ${GLPK_REGKEY}/include
9 HINTS ${GLPK_ROOT_DIR}/include
11 FIND_LIBRARY(GLPK_LIBRARY
13 PATHS ${GLPK_REGKEY}/lib
14 HINTS ${GLPK_ROOT_DIR}/lib
17 IF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
18 FILE(READ ${GLPK_INCLUDE_DIR}/glpk.h GLPK_GLPK_H)
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}")
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}")
26 SET(GLPK_VERSION_STRING "${GLPK_VERSION_MAJOR}.${GLPK_VERSION_MINOR}")
29 IF(GLPK_FIND_VERSION_COUNT GREATER 2)
30 MESSAGE(SEND_ERROR "unexpected version string")
31 ENDIF(GLPK_FIND_VERSION_COUNT GREATER 2)
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}")
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)
46 INCLUDE(FindPackageHandleStandardArgs)
47 FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_PROPER_VERSION_FOUND)
50 SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR})
51 SET(GLPK_LIBRARIES ${GLPK_LIBRARY})
52 SET(GLPK_BIN_DIR ${GLPK_ROOT_PATH}/bin)
55 MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR)
58 SET(LEMON_HAVE_LP TRUE)
59 SET(LEMON_HAVE_MIP TRUE)
60 SET(LEMON_HAVE_GLPK TRUE)