cmake/FindCOIN.cmake
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:26:13 +0100
changeset 806 fa6f37d7a25b
parent 627 20dac2104519
child 946 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@621
     1
SET(COIN_ROOT_DIR "" CACHE PATH "COIN root directory")
ladanyi@621
     2
ladanyi@621
     3
FIND_PATH(COIN_INCLUDE_DIR coin/CoinUtilsConfig.h
ladanyi@634
     4
  HINTS ${COIN_ROOT_DIR}/include
ladanyi@634
     5
)
ladanyi@634
     6
FIND_LIBRARY(COIN_CBC_LIBRARY
ladanyi@634
     7
  NAMES Cbc libCbc
ladanyi@634
     8
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
     9
)
ladanyi@634
    10
FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY
ladanyi@634
    11
  NAMES CbcSolver libCbcSolver
ladanyi@634
    12
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    13
)
ladanyi@634
    14
FIND_LIBRARY(COIN_CGL_LIBRARY
ladanyi@634
    15
  NAMES Cgl libCgl
ladanyi@634
    16
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    17
)
ladanyi@634
    18
FIND_LIBRARY(COIN_CLP_LIBRARY
ladanyi@634
    19
  NAMES Clp libClp
ladanyi@634
    20
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    21
)
ladanyi@634
    22
FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY
ladanyi@634
    23
  NAMES CoinUtils libCoinUtils
ladanyi@634
    24
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    25
)
ladanyi@634
    26
FIND_LIBRARY(COIN_OSI_LIBRARY
ladanyi@634
    27
  NAMES Osi libOsi
ladanyi@634
    28
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    29
)
ladanyi@634
    30
FIND_LIBRARY(COIN_OSI_CBC_LIBRARY
ladanyi@634
    31
  NAMES OsiCbc libOsiCbc
ladanyi@634
    32
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    33
)
ladanyi@634
    34
FIND_LIBRARY(COIN_OSI_CLP_LIBRARY
ladanyi@634
    35
  NAMES OsiClp libOsiClp
ladanyi@634
    36
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    37
)
ladanyi@634
    38
FIND_LIBRARY(COIN_OSI_VOL_LIBRARY
ladanyi@634
    39
  NAMES OsiVol libOsiVol
ladanyi@634
    40
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    41
)
ladanyi@634
    42
FIND_LIBRARY(COIN_VOL_LIBRARY
ladanyi@634
    43
  NAMES Vol libVol
ladanyi@634
    44
  HINTS ${COIN_ROOT_DIR}/lib
ladanyi@634
    45
)
ladanyi@621
    46
ladanyi@621
    47
INCLUDE(FindPackageHandleStandardArgs)
ladanyi@621
    48
FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
ladanyi@621
    49
  COIN_INCLUDE_DIR
ladanyi@621
    50
  COIN_CBC_LIBRARY
ladanyi@621
    51
  COIN_CBC_SOLVER_LIBRARY
ladanyi@621
    52
  COIN_CGL_LIBRARY
ladanyi@621
    53
  COIN_CLP_LIBRARY
ladanyi@621
    54
  COIN_COIN_UTILS_LIBRARY
ladanyi@621
    55
  COIN_OSI_LIBRARY
ladanyi@621
    56
  COIN_OSI_CBC_LIBRARY
ladanyi@621
    57
  COIN_OSI_CLP_LIBRARY
ladanyi@621
    58
  COIN_OSI_VOL_LIBRARY
ladanyi@621
    59
  COIN_VOL_LIBRARY
ladanyi@621
    60
)
ladanyi@621
    61
ladanyi@621
    62
IF(COIN_FOUND)
ladanyi@621
    63
  SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
ladanyi@621
    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@621
    65
  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
ladanyi@621
    66
  SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES})
ladanyi@621
    67
ENDIF(COIN_FOUND)
ladanyi@621
    68
ladanyi@621
    69
MARK_AS_ADVANCED(
ladanyi@621
    70
  COIN_INCLUDE_DIR
ladanyi@621
    71
  COIN_CBC_LIBRARY
ladanyi@621
    72
  COIN_CBC_SOLVER_LIBRARY
ladanyi@621
    73
  COIN_CGL_LIBRARY
ladanyi@621
    74
  COIN_CLP_LIBRARY
ladanyi@621
    75
  COIN_COIN_UTILS_LIBRARY
ladanyi@621
    76
  COIN_OSI_LIBRARY
ladanyi@621
    77
  COIN_OSI_CBC_LIBRARY
ladanyi@621
    78
  COIN_OSI_CLP_LIBRARY
ladanyi@621
    79
  COIN_OSI_VOL_LIBRARY
ladanyi@621
    80
  COIN_VOL_LIBRARY
ladanyi@621
    81
)
ladanyi@621
    82
ladanyi@621
    83
IF(COIN_FOUND)
ladanyi@627
    84
  SET(LEMON_HAVE_LP TRUE)
ladanyi@627
    85
  SET(LEMON_HAVE_MIP TRUE)
ladanyi@627
    86
  SET(LEMON_HAVE_CLP TRUE)
ladanyi@627
    87
  SET(LEMON_HAVE_CBC TRUE)
ladanyi@621
    88
ENDIF(COIN_FOUND)