cmake/FindILOG.cmake
author Alpar Juttner <alpar@cs.elte.hu>
Tue, 08 Apr 2014 15:41:56 +0200
changeset 1305 e937009e4c5f
parent 1230 caf16813b1e8
child 1331 043a787c3cee
permissions -rw-r--r--
Require CMAKE 2.8 (#484)
     1 FIND_PATH(ILOG_ROOT_DIR
     2   NAMES cplex
     3   DOC "CPLEX STUDIO root directory"
     4   PATHS /opt/ibm/ILOG /usr/local/ibm/ILOG /usr/local/ILOG /usr/local/ilog
     5   PATHS "$ENV{HOME}/ILOG" "$ENV{HOME}/.local/ILOG"
     6   PATHS "$ENV{HOME}/ibm/ILOG" "$ENV{HOME}/.local/ibm/ILOG"
     7   PATHS "C:/Program Files/IBM/ILOG" 
     8   PATH_SUFFIXES "CPLEX_Studio126" "CPLEX_Studio125"
     9   "CPLEX_Studio124" "CPLEX_Studio123" "CPLEX_Studio122"
    10   NO_DEFAULT_PATH
    11 )
    12 
    13 IF(WIN32)
    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()
    31 
    32 FIND_PATH(ILOG_CPLEX_ROOT_DIR
    33   NAMES include/ilcplex
    34   HINTS ${ILOG_ROOT_DIR}/cplex ${ILOG_ROOT_DIR}/cplex121
    35   ${ILOG_ROOT_DIR}/cplex122 ${ILOG_ROOT_DIR}/cplex123
    36   DOC "CPLEX root directory"
    37   NO_DEFAULT_PATH
    38 )
    39 
    40 FIND_PATH(ILOG_CONCERT_ROOT_DIR
    41   NAMES include/ilconcert
    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})
    93   IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    94     # SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
    95     SET(ILOG_LIBRARIES ${ILOG_LIBRARIES} "m" "pthread")
    96   ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
    97 ENDIF(ILOG_FOUND)
    98 
    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   )