cmake/FindILOG.cmake
changeset 1231 1782aa72495a
parent 1119 1818cc848005
child 1232 fc3854d936f7
equal deleted inserted replaced
4:9d6ddea209ba 0:8f6b2e2c3a27
     1 SET(CPLEX_ROOT_DIR "" CACHE PATH "CPLEX root directory")
     1 FIND_PATH(ILOG_ROOT_DIR
     2 
     2   NAMES cplex
     3 FIND_PATH(CPLEX_INCLUDE_DIR
     3   DOC "CPLEX STUDIO root directory"
     4   ilcplex/cplex.h
     4   PATHS /opt/ibm/ILOG /usr/local/ibm/ILOG /usr/local/ILOG /usr/local/ilog
     5   PATHS "C:/ILOG/CPLEX/include"
     5   PATHS "$ENV{HOME}/ILOG" "$ENV{HOME}/.local/ILOG"
     6   PATHS "/opt/ilog/cplex/include"
     6   PATHS "$ENV{HOME}/ibm/ILOG" "$ENV{HOME}/.local/ibm/ILOG"
     7   HINTS ${CPLEX_ROOT_DIR}/include
     7   PATHS "C:/Program Files/IBM/ILOG" 
     8 )
     8   PATH_SUFFIXES "CPLEX_Studio126" "CPLEX_Studio125"
     9 FIND_LIBRARY(CPLEX_LIBRARY
     9   "CPLEX_Studio124" "CPLEX_Studio123" "CPLEX_Studio122"
    10   cplex
    10   NO_DEFAULT_PATH
    11   PATHS "C:/ILOG/CPLEX/lib/msvc7/stat_mda"
       
    12   PATHS "/opt/ilog/cplex/bin"
       
    13   HINTS ${CPLEX_ROOT_DIR}/bin
       
    14   HINTS ${CPLEX_ROOT_DIR}/lib
       
    15 )
    11 )
    16 
    12 
    17 INCLUDE(FindPackageHandleStandardArgs)
    13 IF(WIN32)
    18 FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR)
    14   IF(MSVC_VERSION STREQUAL "1400")
       
    15     SET(ILOG_WIN_COMPILER "windows_vs2005")
       
    16   ELSEIF(MSVC_VERSION STREQUAL "1500")
       
    17     SET(ILOG_WIN_COMPILER "windows_vs2008")
       
    18   ELSEIF(MSVC_VERSION STREQUAL "1600")
       
    19     SET(ILOG_WIN_COMPILER "windows_vs2010")
       
    20   ELSE()
       
    21     SET(ILOG_WIN_COMPILER "windows_vs2008")
       
    22   ENDIF()
       
    23   IF(CMAKE_CL_64)
       
    24     SET(ILOG_WIN_COMPILER "x64_${ILOG_WIN_COMPILER}")
       
    25     SET(ILOG_WIN_PLATFORM "x64_win32")
       
    26   ELSE()
       
    27     SET(ILOG_WIN_COMPILER "x86_${ILOG_WIN_COMPILER}")
       
    28     SET(ILOG_WIN_PLATFORM "x86_win32")
       
    29   ENDIF()
       
    30 ENDIF()
    19 
    31 
    20 FIND_PATH(CPLEX_BIN_DIR
    32 FIND_PATH(ILOG_CPLEX_ROOT_DIR
    21   cplex.dll
    33   NAMES include/ilcplex
    22   PATHS "C:/ILOG/CPLEX/bin/x86_win32"
    34   HINTS ${ILOG_ROOT_DIR}/cplex ${ILOG_ROOT_DIR}/cplex121
    23   HINTS ${CPLEX_ROOT_DIR}/bin
    35   ${ILOG_ROOT_DIR}/cplex122 ${ILOG_ROOT_DIR}/cplex123
       
    36   DOC "CPLEX root directory"
       
    37   NO_DEFAULT_PATH
    24 )
    38 )
    25 
    39 
    26 IF(CPLEX_FOUND)
    40 FIND_PATH(ILOG_CONCERT_ROOT_DIR
    27   SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
    41   NAMES include/ilconcert
    28   SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
    42   HINTS ${ILOG_ROOT_DIR}/concert ${ILOG_ROOT_DIR}/concert29
       
    43   DOC "CONCERT root directory"
       
    44   NO_DEFAULT_PATH
       
    45 )
       
    46 
       
    47 FIND_PATH(ILOG_CPLEX_INCLUDE_DIR
       
    48   ilcplex/cplex.h
       
    49   HINTS ${ILOG_CPLEX_ROOT_DIR}/include
       
    50   NO_DEFAULT_PATH
       
    51 )
       
    52 
       
    53 FIND_PATH(ILOG_CONCERT_INCLUDE_DIR
       
    54   ilconcert/ilobasic.h
       
    55   HINTS ${ILOG_CONCERT_ROOT_DIR}/include
       
    56   NO_DEFAULT_PATH
       
    57 )
       
    58 
       
    59 FIND_LIBRARY(ILOG_CPLEX_LIBRARY
       
    60   cplex cplex121 cplex122 cplex123 cplex124
       
    61   HINTS ${ILOG_CPLEX_ROOT_DIR}/lib/x86_sles10_4.1/static_pic
       
    62   ${ILOG_CPLEX_ROOT_DIR}/lib/x86-64_sles10_4.1/static_pic
       
    63   ${ILOG_CPLEX_ROOT_DIR}/lib/x86_debian4.0_4.1/static_pic
       
    64   ${ILOG_CPLEX_ROOT_DIR}/lib/x86-64_debian4.0_4.1/static_pic
       
    65   ${ILOG_CPLEX_ROOT_DIR}/lib/${ILOG_WIN_COMPILER}/stat_mda
       
    66   NO_DEFAULT_PATH
       
    67   )
       
    68 
       
    69 FIND_LIBRARY(ILOG_CONCERT_LIBRARY
       
    70   concert
       
    71   HINTS ${ILOG_CONCERT_ROOT_DIR}/lib/x86_sles10_4.1/static_pic
       
    72   ${ILOG_CONCERT_ROOT_DIR}/lib/x86-64_sles10_4.1/static_pic
       
    73   ${ILOG_CONCERT_ROOT_DIR}/lib/x86_debian4.0_4.1/static_pic
       
    74   ${ILOG_CONCERT_ROOT_DIR}/lib/x86-64_debian4.0_4.1/static_pic
       
    75   ${ILOG_CONCERT_ROOT_DIR}/lib/${ILOG_WIN_COMPILER}/stat_mda
       
    76   NO_DEFAULT_PATH
       
    77   )
       
    78 
       
    79 FIND_FILE(ILOG_CPLEX_DLL
       
    80   cplex121.dll cplex122.dll cplex123.dll cplex124.dll
       
    81   HINTS ${ILOG_CPLEX_ROOT_DIR}/bin/${ILOG_WIN_PLATFORM}
       
    82   NO_DEFAULT_PATH
       
    83   )
       
    84 
       
    85 INCLUDE(FindPackageHandleStandardArgs)
       
    86 FIND_PACKAGE_HANDLE_STANDARD_ARGS(ILOG
       
    87   DEFAULT_MSG ILOG_CPLEX_LIBRARY ILOG_CPLEX_INCLUDE_DIR
       
    88   )
       
    89 
       
    90 IF(ILOG_FOUND)
       
    91   SET(ILOG_INCLUDE_DIRS ${ILOG_CPLEX_INCLUDE_DIR} ${ILOG_CONCERT_INCLUDE_DIR})
       
    92   SET(ILOG_LIBRARIES ${ILOG_CPLEX_LIBRARY} ${ILOG_CONCERT_LIBRARY})
    29   IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    93   IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    30     SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
    94     # SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
       
    95     SET(ILOG_LIBRARIES ${ILOG_LIBRARIES} "m" "pthread")
    31   ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    96   ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    32 ENDIF(CPLEX_FOUND)
    97 ENDIF(ILOG_FOUND)
    33 
    98 
    34 MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)
    99 MARK_AS_ADVANCED(
       
   100   ILOG_CPLEX_LIBRARY ILOG_CPLEX_INCLUDE_DIR ILOG_CPLEX_DLL
       
   101   ILOG_CONCERT_LIBRARY ILOG_CONCERT_INCLUDE_DIR ILOG_CONCERT_DLL
       
   102   )
    35 
   103 
    36 IF(CPLEX_FOUND)
   104 IF(ILOG_FOUND)
    37   SET(LEMON_HAVE_LP TRUE)
   105   SET(LEMON_HAVE_LP TRUE)
    38   SET(LEMON_HAVE_MIP TRUE)
   106   SET(LEMON_HAVE_MIP TRUE)
    39   SET(LEMON_HAVE_CPLEX TRUE)
   107   SET(LEMON_HAVE_CPLEX TRUE)
    40 ENDIF(CPLEX_FOUND)
   108 ENDIF(ILOG_FOUND)