cmake/FindCPLEX.cmake
author Peter Kovacs <kpeter@inf.elte.hu>
Tue, 15 Mar 2011 19:32:21 +0100
changeset 1047 ddd3c0d3d9bf
parent 682 89705c452130
child 1119 1818cc848005
permissions -rw-r--r--
Implement the scaling Price Refinement heuristic in CostScaling (#417)
instead of Early Termination.

These two heuristics are similar, but the newer one is faster
and not only makes it possible to skip some epsilon phases, but
it can improve the performance of the other phases, as well.
     1 SET(CPLEX_ROOT_DIR "" CACHE PATH "CPLEX root directory")
     2 
     3 FIND_PATH(CPLEX_INCLUDE_DIR
     4   ilcplex/cplex.h
     5   PATHS "C:/ILOG/CPLEX91/include"
     6   PATHS "/opt/ilog/cplex91/include"
     7   HINTS ${CPLEX_ROOT_DIR}/include
     8 )
     9 FIND_LIBRARY(CPLEX_LIBRARY
    10   cplex91
    11   PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda"
    12   PATHS "/opt/ilog/cplex91/bin"
    13   HINTS ${CPLEX_ROOT_DIR}/bin
    14 )
    15 
    16 INCLUDE(FindPackageHandleStandardArgs)
    17 FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR)
    18 
    19 FIND_PATH(CPLEX_BIN_DIR
    20   cplex91.dll
    21   PATHS "C:/ILOG/CPLEX91/bin/x86_win32"
    22 )
    23 
    24 IF(CPLEX_FOUND)
    25   SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
    26   SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
    27   IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    28     SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
    29   ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    30 ENDIF(CPLEX_FOUND)
    31 
    32 MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)
    33 
    34 IF(CPLEX_FOUND)
    35   SET(LEMON_HAVE_LP TRUE)
    36   SET(LEMON_HAVE_MIP TRUE)
    37   SET(LEMON_HAVE_CPLEX TRUE)
    38 ENDIF(CPLEX_FOUND)