ladanyi@632: SET(GLPK_ROOT_DIR "" CACHE PATH "GLPK root directory") ladanyi@632: 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@632: PATHS ${GLPK_REGKEY}/include ladanyi@632: HINTS ${GLPK_ROOT_DIR}/include ladanyi@632: ) ladanyi@473: FIND_LIBRARY(GLPK_LIBRARY ladanyi@632: glpk ladanyi@632: PATHS ${GLPK_REGKEY}/lib ladanyi@632: HINTS ${GLPK_ROOT_DIR}/lib ladanyi@632: ) ladanyi@473: ladanyi@633: IF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY) ladanyi@633: FILE(READ ${GLPK_INCLUDE_DIR}/glpk.h GLPK_GLPK_H) ladanyi@633: ladanyi@633: STRING(REGEX MATCH "define[ ]+GLP_MAJOR_VERSION[ ]+[0-9]+" GLPK_MAJOR_VERSION_LINE "${GLPK_GLPK_H}") ladanyi@633: STRING(REGEX REPLACE "define[ ]+GLP_MAJOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MAJOR "${GLPK_MAJOR_VERSION_LINE}") ladanyi@633: ladanyi@633: STRING(REGEX MATCH "define[ ]+GLP_MINOR_VERSION[ ]+[0-9]+" GLPK_MINOR_VERSION_LINE "${GLPK_GLPK_H}") ladanyi@633: STRING(REGEX REPLACE "define[ ]+GLP_MINOR_VERSION[ ]+([0-9]+)" "\\1" GLPK_VERSION_MINOR "${GLPK_MINOR_VERSION_LINE}") ladanyi@633: ladanyi@633: SET(GLPK_VERSION_STRING "${GLPK_VERSION_MAJOR}.${GLPK_VERSION_MINOR}") ladanyi@633: ladanyi@633: IF(GLPK_FIND_VERSION) ladanyi@633: IF(GLPK_FIND_VERSION_COUNT GREATER 2) ladanyi@633: MESSAGE(SEND_ERROR "unexpected version string") ladanyi@633: ENDIF(GLPK_FIND_VERSION_COUNT GREATER 2) ladanyi@633: ladanyi@633: MATH(EXPR GLPK_REQUESTED_VERSION "${GLPK_FIND_VERSION_MAJOR}*100 + ${GLPK_FIND_VERSION_MINOR}") ladanyi@633: MATH(EXPR GLPK_FOUND_VERSION "${GLPK_VERSION_MAJOR}*100 + ${GLPK_VERSION_MINOR}") ladanyi@633: ladanyi@633: IF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION) ladanyi@633: SET(GLPK_PROPER_VERSION_FOUND FALSE) ladanyi@633: ELSE(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION) ladanyi@633: SET(GLPK_PROPER_VERSION_FOUND TRUE) ladanyi@633: ENDIF(GLPK_FOUND_VERSION LESS GLPK_REQUESTED_VERSION) ladanyi@633: ELSE(GLPK_FIND_VERSION) ladanyi@633: SET(GLPK_PROPER_VERSION_FOUND TRUE) ladanyi@633: ENDIF(GLPK_FIND_VERSION) ladanyi@633: ENDIF(GLPK_INCLUDE_DIR AND GLPK_LIBRARY) ladanyi@633: ladanyi@473: INCLUDE(FindPackageHandleStandardArgs) ladanyi@633: 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@611: 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@611: ladanyi@611: IF(GLPK_FOUND) ladanyi@622: SET(LEMON_HAVE_LP TRUE) ladanyi@622: SET(LEMON_HAVE_MIP TRUE) ladanyi@622: SET(LEMON_HAVE_GLPK TRUE) ladanyi@611: ENDIF(GLPK_FOUND)