1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
Jip J. Dekker f2a1c4e389 Squashed 'software/mza/' content from commit f970a59b17
git-subtree-dir: software/mza
git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
2021-07-11 16:34:30 +10:00

66 lines
2.5 KiB
CMake

# - Try to find CPLEX
# Once done this will define
# CPLEX_FOUND - System has CPLEX
# CPLEX_INCLUDE_DIRS - The CPLEX include directories
# CPLEX_LIBRARIES - The libraries needed to use CPLEX
# CPLEX_COMPILE_FLAGS - The definitions required to compile with CPLEX
# User can set CPLEX_ROOT to the preferred installation prefix
list(INSERT CMAKE_PREFIX_PATH 0 "${CPLEX_ROOT}" "$ENV{CPLEX_ROOT}")
set(CPLEX_COMPILE_FLAGS "-fPIC -fno-strict-aliasing -fexceptions -DNDEBUG")
set(CPLEX_VERSIONS 129 128 1271 127 1263 1262 1261 126)
foreach(VERSION ${CPLEX_VERSIONS})
list(APPEND CPLEX_DEFAULT_LOC "/opt/ibm/ILOG/CPLEX_Studio${VERSION}")
list(APPEND CPLEX_DEFAULT_LOC "/opt/IBM/ILOG/CPLEX_Studio${VERSION}")
list(APPEND CPLEX_DEFAULT_LOC "C:\\Program Files\\IBM\\ILOG\\CPLEX_Studio${VERSION}")
list(APPEND CPLEX_DEFAULT_LOC "C:\\Program Files (x86)\\IBM\\ILOG\\CPLEX_Studio${VERSION}")
list(APPEND CPLEX_DEFAULT_LOC "$ENV{HOME}/Applications/IBM/ILOG/CPLEX_Studio${VERSION}")
list(APPEND CPLEX_DEFAULT_LOC "/Applications/IBM/ILOG/CPLEX_Studio${VERSION}")
list(APPEND CPLEX_LIB_NAMES cplex${VERSION})
endforeach(VERSION)
find_path(CPLEX_INCLUDE ilcplex/cplex.h
HINTS ${CPLEX_DEFAULT_LOC}
PATH_SUFFIXES include cplex/include)
if(CPLEX_PLUGIN)
include(CheckIncludeFiles)
# TODO: Cleanup this mess
check_include_files(dlfcn.h HAS_DLFCN_H)
check_include_files(Windows.h HAS_WINDOWS_H)
if(HAS_DLFCN_H)
find_library(CPLEX_LIBRARY dl)
elseif(HAS_WINDOWS_H)
set(CPLEX_LIBRARY ${CPLEX_INCLUDE})
endif()
else()
foreach(CPLEX_LIB ${CPLEX_LIB_NAMES})
find_library(CPLEX_LIBRARY NAMES cplex ${CPLEX_LIB}
HINTS ${CPLEX_DEFAULT_LOC}
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)
if(NOT "${CPLEX_LIBRARY}" STREQUAL "CPLEX_LIBRARY-NOTFOUND")
break()
endif()
endforeach(CPLEX_LIB)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set CBC_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(CPlex DEFAULT_MSG
CPLEX_INCLUDE CPLEX_LIBRARY)
if(CPLEX_PLUGIN AND HAS_WINDOWS_H AND NOT HAS_DLFCN_H)
unset(CPLEX_LIBRARY)
endif()
mark_as_advanced(CPLEX_INCLUDE CPLEX_LIBRARY)
list(REMOVE_AT CMAKE_PREFIX_PATH 1 0)
set(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
set(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE})