this repo has no description
1# - Try to find CPLEX
2# Once done this will define
3# CPLEX_FOUND - System has CPLEX
4# CPLEX_INCLUDE_DIRS - The CPLEX include directories
5# CPLEX_LIBRARIES - The libraries needed to use CPLEX
6# CPLEX_COMPILE_FLAGS - The definitions required to compile with CPLEX
7# User can set CPLEX_ROOT to the preferred installation prefix
8
9list(INSERT CMAKE_PREFIX_PATH 0 "${CPLEX_ROOT}" "$ENV{CPLEX_ROOT}")
10
11set(CPLEX_COMPILE_FLAGS "-fPIC -fno-strict-aliasing -fexceptions -DNDEBUG")
12
13set(CPLEX_VERSIONS 129 128 1271 127 1263 1262 1261 126)
14
15foreach(VERSION ${CPLEX_VERSIONS})
16 list(APPEND CPLEX_DEFAULT_LOC "/opt/ibm/ILOG/CPLEX_Studio${VERSION}")
17 list(APPEND CPLEX_DEFAULT_LOC "/opt/IBM/ILOG/CPLEX_Studio${VERSION}")
18 list(APPEND CPLEX_DEFAULT_LOC "C:\\Program Files\\IBM\\ILOG\\CPLEX_Studio${VERSION}")
19 list(APPEND CPLEX_DEFAULT_LOC "C:\\Program Files (x86)\\IBM\\ILOG\\CPLEX_Studio${VERSION}")
20 list(APPEND CPLEX_DEFAULT_LOC "$ENV{HOME}/Applications/IBM/ILOG/CPLEX_Studio${VERSION}")
21 list(APPEND CPLEX_DEFAULT_LOC "/Applications/IBM/ILOG/CPLEX_Studio${VERSION}")
22
23 list(APPEND CPLEX_LIB_NAMES cplex${VERSION})
24endforeach(VERSION)
25
26find_path(CPLEX_INCLUDE ilcplex/cplex.h
27 HINTS ${CPLEX_DEFAULT_LOC}
28 PATH_SUFFIXES include cplex/include)
29
30if(CPLEX_PLUGIN)
31 include(CheckIncludeFiles)
32 # TODO: Cleanup this mess
33 check_include_files(dlfcn.h HAS_DLFCN_H)
34 check_include_files(Windows.h HAS_WINDOWS_H)
35 if(HAS_DLFCN_H)
36 find_library(CPLEX_LIBRARY dl)
37 elseif(HAS_WINDOWS_H)
38 set(CPLEX_LIBRARY ${CPLEX_INCLUDE})
39 endif()
40else()
41 foreach(CPLEX_LIB ${CPLEX_LIB_NAMES})
42 find_library(CPLEX_LIBRARY NAMES cplex ${CPLEX_LIB}
43 HINTS ${CPLEX_DEFAULT_LOC}
44 PATH_SUFFIXES lib/x86-64_linux/static_pic lib/x86-64_osx/static_pic lib/x64_windows_vs2013/stat_mda cplex/lib/x86-64_linux/static_pic cplex/lib/x86-64_osx/static_pic cplex/lib/x64_windows_vs2013/stat_mda)
45 if(NOT "${CPLEX_LIBRARY}" STREQUAL "CPLEX_LIBRARY-NOTFOUND")
46 break()
47 endif()
48 endforeach(CPLEX_LIB)
49endif()
50
51include(FindPackageHandleStandardArgs)
52# handle the QUIETLY and REQUIRED arguments and set CBC_FOUND to TRUE
53# if all listed variables are TRUE
54find_package_handle_standard_args(CPlex DEFAULT_MSG
55 CPLEX_INCLUDE CPLEX_LIBRARY)
56
57if(CPLEX_PLUGIN AND HAS_WINDOWS_H AND NOT HAS_DLFCN_H)
58 unset(CPLEX_LIBRARY)
59endif()
60
61mark_as_advanced(CPLEX_INCLUDE CPLEX_LIBRARY)
62list(REMOVE_AT CMAKE_PREFIX_PATH 1 0)
63
64set(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
65set(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE})