cmake/FindCOIN.cmake
author Balazs Dezso <deba@inf.elte.hu>
Thu, 24 Jun 2010 09:27:53 +0200
changeset 894 bb70ad62c95f
parent 627 20dac2104519
child 919 1f1328691a07
permissions -rw-r--r--
Fix critical bug in preflow (#372)

The wrong transition between the bound decrease and highest active
heuristics caused the bug. The last node chosen in bound decrease mode
is used in the first iteration in highest active mode.
     1 SET(COIN_ROOT_DIR "" CACHE PATH "COIN root directory")
     2 
     3 FIND_PATH(COIN_INCLUDE_DIR coin/CoinUtilsConfig.h
     4   HINTS ${COIN_ROOT_DIR}/include
     5 )
     6 FIND_LIBRARY(COIN_CBC_LIBRARY
     7   NAMES Cbc libCbc
     8   HINTS ${COIN_ROOT_DIR}/lib
     9 )
    10 FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY
    11   NAMES CbcSolver libCbcSolver
    12   HINTS ${COIN_ROOT_DIR}/lib
    13 )
    14 FIND_LIBRARY(COIN_CGL_LIBRARY
    15   NAMES Cgl libCgl
    16   HINTS ${COIN_ROOT_DIR}/lib
    17 )
    18 FIND_LIBRARY(COIN_CLP_LIBRARY
    19   NAMES Clp libClp
    20   HINTS ${COIN_ROOT_DIR}/lib
    21 )
    22 FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY
    23   NAMES CoinUtils libCoinUtils
    24   HINTS ${COIN_ROOT_DIR}/lib
    25 )
    26 FIND_LIBRARY(COIN_OSI_LIBRARY
    27   NAMES Osi libOsi
    28   HINTS ${COIN_ROOT_DIR}/lib
    29 )
    30 FIND_LIBRARY(COIN_OSI_CBC_LIBRARY
    31   NAMES OsiCbc libOsiCbc
    32   HINTS ${COIN_ROOT_DIR}/lib
    33 )
    34 FIND_LIBRARY(COIN_OSI_CLP_LIBRARY
    35   NAMES OsiClp libOsiClp
    36   HINTS ${COIN_ROOT_DIR}/lib
    37 )
    38 FIND_LIBRARY(COIN_OSI_VOL_LIBRARY
    39   NAMES OsiVol libOsiVol
    40   HINTS ${COIN_ROOT_DIR}/lib
    41 )
    42 FIND_LIBRARY(COIN_VOL_LIBRARY
    43   NAMES Vol libVol
    44   HINTS ${COIN_ROOT_DIR}/lib
    45 )
    46 
    47 INCLUDE(FindPackageHandleStandardArgs)
    48 FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
    49   COIN_INCLUDE_DIR
    50   COIN_CBC_LIBRARY
    51   COIN_CBC_SOLVER_LIBRARY
    52   COIN_CGL_LIBRARY
    53   COIN_CLP_LIBRARY
    54   COIN_COIN_UTILS_LIBRARY
    55   COIN_OSI_LIBRARY
    56   COIN_OSI_CBC_LIBRARY
    57   COIN_OSI_CLP_LIBRARY
    58   COIN_OSI_VOL_LIBRARY
    59   COIN_VOL_LIBRARY
    60 )
    61 
    62 IF(COIN_FOUND)
    63   SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
    64   SET(COIN_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY};${COIN_OSI_VOL_LIBRARY};${COIN_VOL_LIBRARY}")
    65   SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
    66   SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES})
    67 ENDIF(COIN_FOUND)
    68 
    69 MARK_AS_ADVANCED(
    70   COIN_INCLUDE_DIR
    71   COIN_CBC_LIBRARY
    72   COIN_CBC_SOLVER_LIBRARY
    73   COIN_CGL_LIBRARY
    74   COIN_CLP_LIBRARY
    75   COIN_COIN_UTILS_LIBRARY
    76   COIN_OSI_LIBRARY
    77   COIN_OSI_CBC_LIBRARY
    78   COIN_OSI_CLP_LIBRARY
    79   COIN_OSI_VOL_LIBRARY
    80   COIN_VOL_LIBRARY
    81 )
    82 
    83 IF(COIN_FOUND)
    84   SET(LEMON_HAVE_LP TRUE)
    85   SET(LEMON_HAVE_MIP TRUE)
    86   SET(LEMON_HAVE_CLP TRUE)
    87   SET(LEMON_HAVE_CBC TRUE)
    88 ENDIF(COIN_FOUND)