ladanyi@637: SET(GLPK_ROOT_DIR "" CACHE PATH "GLPK root directory")
ladanyi@637: 
ladanyi@473: SET(GLPK_REGKEY "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Glpk;InstallPath]")
ladanyi@473: GET_FILENAME_COMPONENT(GLPK_ROOT_PATH ${GLPK_REGKEY} ABSOLUTE)
ladanyi@473: 
ladanyi@473: FIND_PATH(GLPK_INCLUDE_DIR
ladanyi@473:   glpk.h
ladanyi@637:   PATHS ${GLPK_REGKEY}/include
ladanyi@637:   HINTS ${GLPK_ROOT_DIR}/include
ladanyi@637: )
ladanyi@473: FIND_LIBRARY(GLPK_LIBRARY
ladanyi@637:   glpk
ladanyi@637:   PATHS ${GLPK_REGKEY}/lib
ladanyi@637:   HINTS ${GLPK_ROOT_DIR}/lib
ladanyi@637: )
ladanyi@473: 
ladanyi@638: IF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
ladanyi@638:   FILE(READ ${GLPK_INCLUDE_DIR}/glpk.h GLPK_GLPK_H)
ladanyi@638: 
ladanyi@638:   STRING(REGEX MATCH "define[ ]+GLP_MAJOR_VERSION[ ]+[0-9]+" GLPK_MAJOR_VERSION_LINE "${GLPK_GLPK_H}")
ladanyi@638:   STRING(REGEX REPLACE "define[ ]+GLP_MAJOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MAJOR "${GLPK_MAJOR_VERSION_LINE}")
ladanyi@638: 
ladanyi@638:   STRING(REGEX MATCH "define[ ]+GLP_MINOR_VERSION[ ]+[0-9]+" GLPK_MINOR_VERSION_LINE "${GLPK_GLPK_H}")
ladanyi@638:   STRING(REGEX REPLACE "define[ ]+GLP_MINOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MINOR "${GLPK_MINOR_VERSION_LINE}")
ladanyi@638: 
ladanyi@638:   SET(GLPK_VERSION_STRING "${GLPK_VERSION_MAJOR}.${GLPK_VERSION_MINOR}")
ladanyi@638: 
ladanyi@638:   IF(GLPK_FIND_VERSION)
ladanyi@638:     IF(GLPK_FIND_VERSION_COUNT GREATER 2)
ladanyi@638:       MESSAGE(SEND_ERROR "unexpected version string")
ladanyi@638:     ENDIF(GLPK_FIND_VERSION_COUNT GREATER 2)
ladanyi@638: 
ladanyi@638:     MATH(EXPR GLPK_REQUESTED_VERSION "${GLPK_FIND_VERSION_MAJOR}*100 + ${GLPK_FIND_VERSION_MINOR}")
ladanyi@638:     MATH(EXPR GLPK_FOUND_VERSION "${GLPK_VERSION_MAJOR}*100 + ${GLPK_VERSION_MINOR}")
ladanyi@638: 
ladanyi@638:     IF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
ladanyi@638:       SET(GLPK_PROPER_VERSION_FOUND FALSE)
ladanyi@638:     ELSE(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
ladanyi@638:       SET(GLPK_PROPER_VERSION_FOUND TRUE)
ladanyi@638:     ENDIF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION)
ladanyi@638:   ELSE(GLPK_FIND_VERSION)
ladanyi@638:     SET(GLPK_PROPER_VERSION_FOUND TRUE)
ladanyi@638:   ENDIF(GLPK_FIND_VERSION)
ladanyi@638: ENDIF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY)
ladanyi@638: 
ladanyi@473: INCLUDE(FindPackageHandleStandardArgs)
ladanyi@638: FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_PROPER_VERSION_FOUND)
ladanyi@473: 
ladanyi@473: IF(GLPK_FOUND)
ladanyi@619:   SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR})
ladanyi@473:   SET(GLPK_LIBRARIES ${GLPK_LIBRARY})
ladanyi@473:   SET(GLPK_BIN_DIR ${GLPK_ROOT_PATH}/bin)
ladanyi@473: ENDIF(GLPK_FOUND)
ladanyi@473: 
ladanyi@473: MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR)
ladanyi@619: 
ladanyi@619: IF(GLPK_FOUND)
ladanyi@627:   SET(LEMON_HAVE_LP TRUE)
ladanyi@627:   SET(LEMON_HAVE_MIP TRUE)
ladanyi@627:   SET(LEMON_HAVE_GLPK TRUE)
ladanyi@619: ENDIF(GLPK_FOUND)