File: FindCLPOSI.cmake

package info (click to toggle)
stopt 6.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,264 kB
  • sloc: cpp: 75,778; python: 6,012; makefile: 72; sh: 57
file content (94 lines) | stat: -rw-r--r-- 2,671 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# modeled after FindCOIN.cmake in the lemon project

# Written by: Xavier Warin
# Last updated: 02/12/2015

# This cmake file is designed to locate coin-related
# dependencies on a filesystem. 
#
# If the coin dependencies were installed in a non-standard
# directory, e.g. installed from source perhaps, then
# the user can provide a prefix hint via the CLPOSI_ROOT_DIR
# cmake variable:
#       $> cmake ../src -DCLPOSI_ROOT_DIR=/path/to/coin/root

# To date, this install requires the following dev versions
# of the respective coin libraries:
##       * coinor-libClp-dev
#       * coinor-libcoinutils-dev
#       * coinor-libOsi-dev

#
# Get the root directory hint if provided
#
IF(NOT DEFINED CLPOSI_ROOT_DIR)
    SET(CLPOSI_ROOT_DIR "$ENV{CLPOSI_ROOT_DIR}")
    MESSAGE("\tCLPOSI Root Dir: ${CLPOSI_INCLUDE_DIR}")
ENDIF(NOT DEFINED CLPOSI_ROOT_DIR)
MESSAGE(STATUS "CLPOSI_ROOT_DIR hint is : ${CLPOSI_ROOT_DIR}")

#
# Find the path based on a required header file
#
MESSAGE(STATUS "Coin multiple library dependency status:")
FIND_PATH(CLPOSI_INCLUDE_DIR coin/ClpModel.hpp
  HINTS "${CLPOSI_INCLUDE_DIR}"
  HINTS "${CLPOSI_ROOT_DIR}/include"
  HINTS /usr/
  HINTS /usr/include/
  HINTS /usr/local/
  HINTS /usr/local/include/
  HINTS /usr/coin/
  HINTS /usr/local/coin/
)
set(CLPOSI_INCLUDE_DIR ${CLPOSI_INCLUDE_DIR}/coin)
MESSAGE("\tCLPOSI Include Dir: ${CLPOSI_INCLUDE_DIR}")

#
# Find all coin library dependencies
#
FIND_LIBRARY(CLPOSI_CLP_LIBRARY
  NAMES Clp libClp #libClp.so.0
  HINTS ${CLPOSI_INCLUDE_DIR}/../../lib/
  HINTS "${CLPOSI_ROOT_DIR}/lib"
)
MESSAGE("\tCLPOSI CLP: ${CLPOSI_CLP_LIBRARY}")

FIND_LIBRARY(CLPOSI_UTILS_LIBRARY
  NAMES CoinUtils libCoinUtils #libCoinUtils.so.0
  HINTS ${CLPOSI_INCLUDE_DIR}/../../lib/
  HINTS "${CLPOSI_ROOT_DIR}/lib"
)
MESSAGE("\tCLPOSI UTILS: ${CLPOSI_CLPOSI_UTILS_LIBRARY}")

FIND_LIBRARY(CLPOSI_OSI_LIBRARY
  NAMES  Osi libOsi #libOsiClp.so.0
  HINTS ${CLPOSI_INCLUDE_DIR}/../../lib/
  HINTS "${CLPOSI_ROOT_DIR}/lib"
)
MESSAGE("\tCLPOSI OSI CLP: ${CLPOSI_OSI_CLP_LIBRARY}")


INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CLPOSI DEFAULT_MSG
  CLPOSI_INCLUDE_DIR
  CLPOSI_CLP_LIBRARY
  CLPOSI_OSI_LIBRARY
)

#
# Set all required cmake variables based on our findings
#
IF(CLPOSI_FOUND)
  SET(CLPOSI_INCLUDE_DIRS ${CLPOSI_INCLUDE_DIR})
  SET(CLPOSI_LIBRARIES "${CLPOSI_UTILS_LIBRARY};${CLPOSI_CLP_LIBRARY};${CLPOSI_OSI_LIBRARY}")
ENDIF(CLPOSI_FOUND)

#
# Report a synopsis of our findings
#
IF(CLPOSI_INCLUDE_DIRS)
  MESSAGE(STATUS "Found CLPOSI Include Dirs: ${CLPOSI_INCLUDE_DIRS}")
ELSE(CLPOSI_INCLUDE_DIRS)
  MESSAGE(STATUS "CLPOSI Include Dirs NOT FOUND")
ENDIF(CLPOSI_INCLUDE_DIRS)