cmake/FindCOIN.cmake
author Peter Kovacs <kpeter@inf.elte.hu>
Wed, 29 Apr 2009 03:15:24 +0200
changeset 687 6c408d864fa1
child 674 20dac2104519
permissions -rw-r--r--
Support negative costs and bounds in NetworkSimplex (#270)

* The interface is reworked to support negative costs and bounds.
- ProblemType and problemType() are renamed to
SupplyType and supplyType(), see also #234.
- ProblemType type is introduced similarly to the LP interface.
- 'bool run()' is replaced by 'ProblemType run()' to handle
unbounded problem instances, as well.
- Add INF public member constant similarly to the LP interface.
* Remove capacityMap() and boundMaps(), see also #266.
* Update the problem definition in the MCF module.
* Remove the usage of Circulation (and adaptors) for checking feasibility.
Check feasibility by examining the artifical arcs instead (after solving
the problem).
* Additional check for unbounded negative cycles found during the
algorithm (it is possible now, since negative costs are allowed).
* Fix in the constructor (the value types needn't be integer any more),
see also #254.
* Improve and extend the doc.
* Rework the test file and add test cases for negative costs and bounds.
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@668
     4
  PATHS ${COIN_ROOT_DIR}/include)
ladanyi@668
     5
ladanyi@668
     6
FIND_LIBRARY(COIN_CBC_LIBRARY libCbc
ladanyi@668
     7
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
     8
FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY libCbcSolver
ladanyi@668
     9
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    10
FIND_LIBRARY(COIN_CGL_LIBRARY libCgl
ladanyi@668
    11
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    12
FIND_LIBRARY(COIN_CLP_LIBRARY libClp
ladanyi@668
    13
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    14
FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY libCoinUtils
ladanyi@668
    15
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    16
FIND_LIBRARY(COIN_OSI_LIBRARY libOsi
ladanyi@668
    17
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    18
FIND_LIBRARY(COIN_OSI_CBC_LIBRARY libOsiCbc
ladanyi@668
    19
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    20
FIND_LIBRARY(COIN_OSI_CLP_LIBRARY libOsiClp
ladanyi@668
    21
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    22
FIND_LIBRARY(COIN_OSI_VOL_LIBRARY libOsiVol
ladanyi@668
    23
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    24
FIND_LIBRARY(COIN_VOL_LIBRARY libVol
ladanyi@668
    25
  PATHS ${COIN_ROOT_DIR}/lib)
ladanyi@668
    26
ladanyi@668
    27
INCLUDE(FindPackageHandleStandardArgs)
ladanyi@668
    28
FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
ladanyi@668
    29
  COIN_INCLUDE_DIR
ladanyi@668
    30
  COIN_CBC_LIBRARY
ladanyi@668
    31
  COIN_CBC_SOLVER_LIBRARY
ladanyi@668
    32
  COIN_CGL_LIBRARY
ladanyi@668
    33
  COIN_CLP_LIBRARY
ladanyi@668
    34
  COIN_COIN_UTILS_LIBRARY
ladanyi@668
    35
  COIN_OSI_LIBRARY
ladanyi@668
    36
  COIN_OSI_CBC_LIBRARY
ladanyi@668
    37
  COIN_OSI_CLP_LIBRARY
ladanyi@668
    38
  COIN_OSI_VOL_LIBRARY
ladanyi@668
    39
  COIN_VOL_LIBRARY
ladanyi@668
    40
)
ladanyi@668
    41
ladanyi@668
    42
IF(COIN_FOUND)
ladanyi@668
    43
  SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
ladanyi@668
    44
  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
    45
  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
ladanyi@668
    46
  SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES})
ladanyi@668
    47
ENDIF(COIN_FOUND)
ladanyi@668
    48
ladanyi@668
    49
MARK_AS_ADVANCED(
ladanyi@668
    50
  COIN_INCLUDE_DIR
ladanyi@668
    51
  COIN_CBC_LIBRARY
ladanyi@668
    52
  COIN_CBC_SOLVER_LIBRARY
ladanyi@668
    53
  COIN_CGL_LIBRARY
ladanyi@668
    54
  COIN_CLP_LIBRARY
ladanyi@668
    55
  COIN_COIN_UTILS_LIBRARY
ladanyi@668
    56
  COIN_OSI_LIBRARY
ladanyi@668
    57
  COIN_OSI_CBC_LIBRARY
ladanyi@668
    58
  COIN_OSI_CLP_LIBRARY
ladanyi@668
    59
  COIN_OSI_VOL_LIBRARY
ladanyi@668
    60
  COIN_VOL_LIBRARY
ladanyi@668
    61
)
ladanyi@668
    62
ladanyi@668
    63
IF(COIN_FOUND)
ladanyi@668
    64
  SET(HAVE_LP TRUE)
ladanyi@668
    65
  SET(HAVE_MIP TRUE)
ladanyi@668
    66
  SET(HAVE_CLP TRUE)
ladanyi@668
    67
  SET(HAVE_CBC TRUE)
ladanyi@668
    68
ENDIF(COIN_FOUND)