this repo has no description
at develop 2.9 kB view raw
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 9set(CPLEX_COMPILE_FLAGS "-fPIC -fno-strict-aliasing -fexceptions") 10 11set(CPLEX_VERSIONS 1210 129 128 1271 127 1263 1262 1261 126) 12 13foreach(VERSION ${CPLEX_VERSIONS}) 14 list(APPEND CPLEX_DEFAULT_LOC "/opt/ibm/ILOG/CPLEX_Studio${VERSION}") 15 list(APPEND CPLEX_DEFAULT_LOC "/opt/IBM/ILOG/CPLEX_Studio${VERSION}") 16 list(APPEND CPLEX_DEFAULT_LOC "C:\\Program Files\\IBM\\ILOG\\CPLEX_Studio${VERSION}") 17 list(APPEND CPLEX_DEFAULT_LOC "C:\\Program Files (x86)\\IBM\\ILOG\\CPLEX_Studio${VERSION}") 18 list(APPEND CPLEX_DEFAULT_LOC "$ENV{HOME}/Applications/IBM/ILOG/CPLEX_Studio${VERSION}") 19 list(APPEND CPLEX_DEFAULT_LOC "/Applications/IBM/ILOG/CPLEX_Studio${VERSION}") 20 list(APPEND CPLEX_DEFAULT_LOC "/Applications/CPLEX_Studio${VERSION}") 21 22 list(APPEND CPLEX_LIB_NAMES cplex${VERSION}) 23endforeach(VERSION) 24 25find_path(CPLEX_INCLUDE ilcplex/cplex.h 26 HINTS ${CPLEX_DEFAULT_LOC} 27 PATH_SUFFIXES include cplex/include) 28 29if(NOT "${CPLEX_INCLUDE}" STREQUAL "CPLEX_INCLUDE-NOTFOUND") 30 file(READ "${CPLEX_INCLUDE}/ilcplex/cplex.h" CPLEX_CONFIG) 31 string(REGEX MATCH " +\\* +Version +([0-9]+\\.[0-9]+\\.[0-9]+)" _ "${CPLEX_CONFIG}") 32 set(CPLEX_VERSION "${CMAKE_MATCH_1}") 33 unset(CPLEX_CONFIG) 34endif() 35 36if(CPLEX_PLUGIN) 37 include(CheckIncludeFiles) 38 # TODO: Cleanup this mess 39 check_include_files(dlfcn.h HAS_DLFCN_H) 40 check_include_files(Windows.h HAS_WINDOWS_H) 41 if(HAS_DLFCN_H) 42 find_library(CPLEX_LIBRARY dl) 43 elseif(HAS_WINDOWS_H) 44 set(CPLEX_LIBRARY ${CPLEX_INCLUDE}) 45 endif() 46else() 47 foreach(CPLEX_LIB ${CPLEX_LIB_NAMES}) 48 find_library(CPLEX_LIBRARY NAMES cplex ${CPLEX_LIB} 49 HINTS ${CPLEX_DEFAULT_LOC} 50 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) 51 if(NOT "${CPLEX_LIBRARY}" STREQUAL "CPLEX_LIBRARY-NOTFOUND") 52 break() 53 endif() 54 endforeach(CPLEX_LIB) 55endif() 56 57include(FindPackageHandleStandardArgs) 58# handle the QUIETLY and REQUIRED arguments and set CBC_FOUND to TRUE 59# if all listed variables are TRUE 60find_package_handle_standard_args(CPlex 61 FOUND_VAR CPLEX_FOUND 62 REQUIRED_VARS CPLEX_INCLUDE CPLEX_LIBRARY 63 VERSION_VAR CPLEX_VERSION 64 FAIL_MESSAGE "Could NOT find CPlex, use CPLEX_ROOT to hint its location" 65) 66 67if(CPLEX_PLUGIN AND HAS_WINDOWS_H AND NOT HAS_DLFCN_H) 68 unset(CPLEX_LIBRARY) 69endif() 70 71mark_as_advanced(CPLEX_INCLUDE CPLEX_LIBRARY) 72 73set(CPLEX_LIBRARIES ${CPLEX_LIBRARY}) 74set(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE})