cmake/FindCOIN.cmake
author Alpar Juttner <alpar@cs.elte.hu>
Wed, 17 Oct 2018 17:24:14 +0200
changeset 1180 389416f8a995
parent 1064 fc3854d936f7
permissions -rw-r--r--
Better MIP solver discovery and support linking to CLP/CBC on Windows (#614)
     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/coin
     9   HINTS ${COIN_ROOT_DIR}/lib
    10 )
    11 FIND_LIBRARY(COIN_CBC_SOLVER_LIBRARY
    12   NAMES CbcSolver libCbcSolver
    13   HINTS ${COIN_ROOT_DIR}/lib/coin
    14   HINTS ${COIN_ROOT_DIR}/lib
    15 )
    16 FIND_LIBRARY(COIN_CGL_LIBRARY
    17   NAMES Cgl libCgl
    18   HINTS ${COIN_ROOT_DIR}/lib/coin
    19   HINTS ${COIN_ROOT_DIR}/lib
    20 )
    21 FIND_LIBRARY(COIN_CLP_LIBRARY
    22   NAMES Clp libClp
    23   HINTS ${COIN_ROOT_DIR}/lib/coin
    24   HINTS ${COIN_ROOT_DIR}/lib
    25 )
    26 FIND_LIBRARY(COIN_COIN_UTILS_LIBRARY
    27   NAMES CoinUtils libCoinUtils
    28   HINTS ${COIN_ROOT_DIR}/lib/coin
    29   HINTS ${COIN_ROOT_DIR}/lib
    30 )
    31 FIND_LIBRARY(COIN_OSI_LIBRARY
    32   NAMES Osi libOsi
    33   HINTS ${COIN_ROOT_DIR}/lib/coin
    34   HINTS ${COIN_ROOT_DIR}/lib
    35 )
    36 FIND_LIBRARY(COIN_OSI_CBC_LIBRARY
    37   NAMES OsiCbc libOsiCbc
    38   HINTS ${COIN_ROOT_DIR}/lib/coin
    39   HINTS ${COIN_ROOT_DIR}/lib
    40 )
    41 FIND_LIBRARY(COIN_OSI_CLP_LIBRARY
    42   NAMES OsiClp libOsiClp
    43   HINTS ${COIN_ROOT_DIR}/lib/coin
    44   HINTS ${COIN_ROOT_DIR}/lib
    45 )
    46 FIND_LIBRARY(COIN_OSI_VOL_LIBRARY
    47   NAMES OsiVol libOsiVol
    48   HINTS ${COIN_ROOT_DIR}/lib/coin
    49   HINTS ${COIN_ROOT_DIR}/lib
    50 )
    51 FIND_LIBRARY(COIN_VOL_LIBRARY
    52   NAMES Vol libVol
    53   HINTS ${COIN_ROOT_DIR}/lib/coin
    54   HINTS ${COIN_ROOT_DIR}/lib
    55 )
    56 
    57 FIND_LIBRARY(COIN_ZLIB_LIBRARY
    58   NAMES z libz
    59   HINTS ${COIN_ROOT_DIR}/lib/coin
    60   HINTS ${COIN_ROOT_DIR}/lib
    61 )
    62 FIND_LIBRARY(COIN_BZ2_LIBRARY
    63   NAMES bz2 libbz2
    64   HINTS ${COIN_ROOT_DIR}/lib/coin
    65   HINTS ${COIN_ROOT_DIR}/lib
    66 )
    67 
    68 FIND_LIBRARY(COIN_PTHREADS_LIBRARY
    69   NAMES pthreads libpthreads
    70   HINTS ${COIN_ROOT_DIR}/lib/coin
    71   HINTS ${COIN_ROOT_DIR}/lib
    72 )
    73 
    74 INCLUDE(FindPackageHandleStandardArgs)
    75 FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
    76   COIN_INCLUDE_DIR
    77   COIN_CBC_LIBRARY
    78   COIN_CBC_SOLVER_LIBRARY
    79   COIN_CGL_LIBRARY
    80   COIN_CLP_LIBRARY
    81   COIN_COIN_UTILS_LIBRARY
    82   COIN_OSI_LIBRARY
    83   COIN_OSI_CBC_LIBRARY
    84   COIN_OSI_CLP_LIBRARY
    85   # COIN_OSI_VOL_LIBRARY
    86   # COIN_VOL_LIBRARY
    87 )
    88 
    89 IF(COIN_FOUND)
    90   SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
    91   SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
    92   IF(COIN_ZLIB_LIBRARY)
    93     SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_ZLIB_LIBRARY}")
    94   ENDIF(COIN_ZLIB_LIBRARY)
    95    IF(COIN_BZ2_LIBRARY)
    96     SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_BZ2_LIBRARY}")
    97   ENDIF(COIN_BZ2_LIBRARY)
    98    IF(COIN_PTHREADS_LIBRARY)
    99     SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_PTHREADS_LIBRARY}")
   100   ENDIF(COIN_PTHREADS_LIBRARY)
   101   SET(COIN_CBC_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY};${COIN_CLP_LIBRARIES}")
   102   SET(COIN_LIBRARIES ${COIN_CBC_LIBRARIES})
   103 ENDIF(COIN_FOUND)
   104 
   105 MARK_AS_ADVANCED(
   106   COIN_INCLUDE_DIR
   107   COIN_CBC_LIBRARY
   108   COIN_CBC_SOLVER_LIBRARY
   109   COIN_CGL_LIBRARY
   110   COIN_CLP_LIBRARY
   111   COIN_COIN_UTILS_LIBRARY
   112   COIN_OSI_LIBRARY
   113   COIN_OSI_CBC_LIBRARY
   114   COIN_OSI_CLP_LIBRARY
   115   COIN_OSI_VOL_LIBRARY
   116   COIN_VOL_LIBRARY
   117   COIN_ZLIB_LIBRARY
   118   COIN_BZ2_LIBRARY
   119 )