cmake/FindCOIN.cmake
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:26:13 +0100
changeset 872 fa6f37d7a25b
parent 674 20dac2104519
child 1062 1f1328691a07
permissions -rw-r--r--
Entirely rework CapacityScaling (#180)

- Use the new interface similarly to NetworkSimplex.
- Rework the implementation using an efficient internal structure
for handling the residual network. This improvement made the
code much faster (up to 2-5 times faster on large graphs).
- Handle GEQ supply type (LEQ is not supported).
- Handle negative costs for arcs of finite capacity.
(Note that this algorithm cannot handle arcs of negative cost
and infinite upper bound, thus it returns UNBOUNDED if such
an arc exists.)
- Extend the documentation.
ladanyi@668
     1
SET(COIN_ROOT_DIR "" CACHE PATH "COIN root directory")
ladanyi@668
     2
ladanyi@668
     3
FIND_PATH(COIN_INCLUDE_DIR coin/CoinUtilsConfig.h
ladanyi@681
     4
  HINTS ${COIN_ROOT_DIR}/include
ladanyi@681
     5
)
ladanyi@681
     6
FIND_LIBRARY(COIN_CBC_LIBRARY
ladanyi@681
     7
  NAMES Cbc libCbc
ladanyi@681
     8
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
     9
)
ladanyi@681
    10
FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY
ladanyi@681
    11
  NAMES CbcSolver libCbcSolver
ladanyi@681
    12
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    13
)
ladanyi@681
    14
FIND_LIBRARY(COIN_CGL_LIBRARY
ladanyi@681
    15
  NAMES Cgl libCgl
ladanyi@681
    16
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    17
)
ladanyi@681
    18
FIND_LIBRARY(COIN_CLP_LIBRARY
ladanyi@681
    19
  NAMES Clp libClp
ladanyi@681
    20
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    21
)
ladanyi@681
    22
FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY
ladanyi@681
    23
  NAMES CoinUtils libCoinUtils
ladanyi@681
    24
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    25
)
ladanyi@681
    26
FIND_LIBRARY(COIN_OSI_LIBRARY
ladanyi@681
    27
  NAMES Osi libOsi
ladanyi@681
    28
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    29
)
ladanyi@681
    30
FIND_LIBRARY(COIN_OSI_CBC_LIBRARY
ladanyi@681
    31
  NAMES OsiCbc libOsiCbc
ladanyi@681
    32
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    33
)
ladanyi@681
    34
FIND_LIBRARY(COIN_OSI_CLP_LIBRARY
ladanyi@681
    35
  NAMES OsiClp libOsiClp
ladanyi@681
    36
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    37
)
ladanyi@681
    38
FIND_LIBRARY(COIN_OSI_VOL_LIBRARY
ladanyi@681
    39
  NAMES OsiVol libOsiVol
ladanyi@681
    40
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    41
)
ladanyi@681
    42
FIND_LIBRARY(COIN_VOL_LIBRARY
ladanyi@681
    43
  NAMES Vol libVol
ladanyi@681
    44
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@681
    45
)
ladanyi@668
    46
ladanyi@668
    47
INCLUDE(FindPackageHandleStandardArgs)
ladanyi@668
    48
FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
ladanyi@668
    49
  COIN_INCLUDE_DIR
ladanyi@668
    50
  COIN_CBC_LIBRARY
ladanyi@668
    51
  COIN_CBC_SOLVER_LIBRARY
ladanyi@668
    52
  COIN_CGL_LIBRARY
ladanyi@668
    53
  COIN_CLP_LIBRARY
ladanyi@668
    54
  COIN_COIN_UTILS_LIBRARY
ladanyi@668
    55
  COIN_OSI_LIBRARY
ladanyi@668
    56
  COIN_OSI_CBC_LIBRARY
ladanyi@668
    57
  COIN_OSI_CLP_LIBRARY
ladanyi@668
    58
  COIN_OSI_VOL_LIBRARY
ladanyi@668
    59
  COIN_VOL_LIBRARY
ladanyi@668
    60
)
ladanyi@668
    61
ladanyi@668
    62
IF(COIN_FOUND)
ladanyi@668
    63
  SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
ladanyi@668
    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}")
ladanyi@668
    65
  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
ladanyi@668
    66
  SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES})
ladanyi@668
    67
ENDIF(COIN_FOUND)
ladanyi@668
    68
ladanyi@668
    69
MARK_AS_ADVANCED(
ladanyi@668
    70
  COIN_INCLUDE_DIR
ladanyi@668
    71
  COIN_CBC_LIBRARY
ladanyi@668
    72
  COIN_CBC_SOLVER_LIBRARY
ladanyi@668
    73
  COIN_CGL_LIBRARY
ladanyi@668
    74
  COIN_CLP_LIBRARY
ladanyi@668
    75
  COIN_COIN_UTILS_LIBRARY
ladanyi@668
    76
  COIN_OSI_LIBRARY
ladanyi@668
    77
  COIN_OSI_CBC_LIBRARY
ladanyi@668
    78
  COIN_OSI_CLP_LIBRARY
ladanyi@668
    79
  COIN_OSI_VOL_LIBRARY
ladanyi@668
    80
  COIN_VOL_LIBRARY
ladanyi@668
    81
)
ladanyi@668
    82
ladanyi@668
    83
IF(COIN_FOUND)
ladanyi@674
    84
  SET(LEMON_HAVE_LP TRUE)
ladanyi@674
    85
  SET(LEMON_HAVE_MIP TRUE)
ladanyi@674
    86
  SET(LEMON_HAVE_CLP TRUE)
ladanyi@674
    87
  SET(LEMON_HAVE_CBC TRUE)
ladanyi@668
    88
ENDIF(COIN_FOUND)