gravatar
ladanyi@tmit.bme.hu
ladanyi@tmit.bme.hu
FindCPLEX for CMake (#256)
0 4 1
default
5 files changed with 60 insertions and 2 deletions:
↑ Collapse diff ↑
Ignore white space 96 line context
1
FIND_PATH(CPLEX_INCLUDE_DIR
2
  ilcplex/cplex.h
3
  PATHS "C:/ILOG/CPLEX91/include")
4

	
5
FIND_LIBRARY(CPLEX_LIBRARY
6
  NAMES cplex91
7
  PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda")
8

	
9
INCLUDE(FindPackageHandleStandardArgs)
10
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR)
11

	
12
FIND_PATH(CPLEX_BIN_DIR
13
  cplex91.dll
14
  PATHS "C:/ILOG/CPLEX91/bin/x86_win32")
15

	
16
IF(CPLEX_FOUND)
17
  SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
18
  SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
19
ENDIF(CPLEX_FOUND)
20

	
21
MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)
22

	
23
IF(CPLEX_FOUND)
24
  SET(HAVE_LP TRUE)
25
  SET(HAVE_MIP TRUE)
26
  SET(HAVE_CPLEX TRUE)
27
ENDIF(CPLEX_FOUND)
Ignore white space 6 line context
1 1
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 2

	
3 3
IF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
4 4
  INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake)
5 5
ELSE(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
6 6
  SET(PROJECT_NAME "LEMON")
7 7
  SET(PROJECT_VERSION "hg-tip" CACHE STRING "LEMON version string.")
8 8
ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
9 9

	
10 10
PROJECT(${PROJECT_NAME})
11 11

	
12 12
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
13 13

	
14 14
INCLUDE(FindDoxygen)
15 15
INCLUDE(FindGhostscript)
16 16
FIND_PACKAGE(GLPK 4.33)
17
FIND_PACKAGE(CPLEX)
17 18

	
18 19
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
19 20

	
20 21
IF(MSVC)
21 22
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4250 /wd4355 /wd4800 /wd4996")
22 23
# Suppressed warnings:
23 24
# C4250: 'class1' : inherits 'class2::member' via dominance
24 25
# C4355: 'this' : used in base member initializer list
25 26
# C4800: 'type' : forcing value to bool 'true' or 'false' (performance warning)
26 27
# C4996: 'function': was declared deprecated
27 28
ENDIF(MSVC)
28 29

	
29 30
INCLUDE(CheckTypeSize)
30 31
CHECK_TYPE_SIZE("long long" LONG_LONG)
31 32

	
32 33
ENABLE_TESTING()
33 34

	
34 35
ADD_SUBDIRECTORY(lemon)
35 36
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
36 37
  ADD_SUBDIRECTORY(demo)
37 38
  ADD_SUBDIRECTORY(tools)
38 39
  ADD_SUBDIRECTORY(doc)
39 40
  ADD_SUBDIRECTORY(test)
40 41
ENDIF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
41 42

	
42 43
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
43 44
  IF(WIN32)
44 45
    SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
45 46
    SET(CPACK_PACKAGE_VENDOR "EGRES")
46 47
    SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
47 48
      "LEMON - Library of Efficient Models and Optimization in Networks")
48 49
    SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
49 50

	
50 51
    SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
51 52

	
52 53
    SET(CPACK_PACKAGE_INSTALL_DIRECTORY
53 54
      "${PROJECT_NAME} ${PROJECT_VERSION}")
54 55
    SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
55 56
      "${PROJECT_NAME} ${PROJECT_VERSION}")
56 57

	
57 58
    SET(CPACK_COMPONENTS_ALL headers library html_documentation bin)
58 59

	
59 60
    SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
60 61
    SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library")
61 62
    SET(CPACK_COMPONENT_BIN_DISPLAY_NAME "Command line utilities")
62 63
    SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")
63 64

	
64 65
    SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
Ignore white space 6 line context
1 1
INCLUDE_DIRECTORIES(
2 2
  ${PROJECT_SOURCE_DIR}
3 3
  ${PROJECT_BINARY_DIR}
4 4
)
5 5

	
6 6
CONFIGURE_FILE(
7 7
  ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
8 8
  ${CMAKE_CURRENT_BINARY_DIR}/config.h
9 9
)
10 10

	
11 11
SET(LEMON_SOURCES
12 12
  arg_parser.cc
13 13
  base.cc
14 14
  color.cc
15 15
  lp_base.cc
16 16
  lp_skeleton.cc
17 17
  random.cc
18 18
  bits/windows.cc
19 19
)
20 20

	
21 21
IF(HAVE_GLPK)
22 22
  SET(LEMON_SOURCES ${LEMON_SOURCES} glpk.cc)
23 23
  INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIRS})
24 24
  IF(WIN32)
25 25
    INSTALL(FILES ${GLPK_BIN_DIR}/glpk.dll DESTINATION bin)
26 26
    INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin)
27 27
    INSTALL(FILES ${GLPK_BIN_DIR}/zlib1.dll DESTINATION bin)
28 28
  ENDIF(WIN32)
29 29
ENDIF(HAVE_GLPK)
30 30

	
31
IF(HAVE_CPLEX)
32
  SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
33
  INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
34
ENDIF(HAVE_CPLEX)
35

	
31 36
ADD_LIBRARY(lemon ${LEMON_SOURCES})
32 37

	
33 38
INSTALL(
34 39
  TARGETS lemon
35 40
  ARCHIVE DESTINATION lib
36 41
  COMPONENT library)
37 42

	
38 43
INSTALL(
39 44
  DIRECTORY . bits concepts
40 45
  DESTINATION include/lemon
41 46
  COMPONENT headers
42 47
  FILES_MATCHING PATTERN "*.h")
Ignore white space 6 line context
1 1
#cmakedefine HAVE_LONG_LONG 1
2 2
#cmakedefine HAVE_LP 1
3 3
#cmakedefine HAVE_MIP 1
4 4
#cmakedefine HAVE_GLPK 1
5
#cmakedefine HAVE_CPLEX 1
Ignore white space 6 line context
1 1
INCLUDE_DIRECTORIES(
2 2
  ${PROJECT_SOURCE_DIR}
3 3
  ${PROJECT_BINARY_DIR}
4 4
)
5 5

	
6 6
LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/lemon)
7 7

	
8 8
SET(TESTS
9 9
  adaptors_test
10 10
  bfs_test
11 11
  circulation_test
12 12
  counter_test
13 13
  dfs_test
14 14
  digraph_test
15 15
  dijkstra_test
16 16
  dim_test
17 17
  edge_set_test
18 18
  error_test
19 19
  euler_test
20 20
  gomory_hu_test
21 21
  graph_copy_test
22 22
  graph_test
23 23
  graph_utils_test
24 24
  hao_orlin_test
25 25
  heap_test
26 26
  kruskal_test
27 27
  maps_test
28 28
  matching_test
29 29
  min_cost_arborescence_test
30 30
  min_cost_flow_test
31 31
  path_test
32 32
  preflow_test
33 33
  radix_sort_test
34 34
  random_test
35 35
  suurballe_test
36 36
  time_measure_test
37 37
  unionfind_test)
38 38

	
39 39
IF(HAVE_LP)
40 40
  ADD_EXECUTABLE(lp_test lp_test.cc)
41
  SET(LP_TEST_LIBS lemon)
41 42
  IF(HAVE_GLPK)
42
    TARGET_LINK_LIBRARIES(lp_test lemon ${GLPK_LIBRARIES})
43
    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
43 44
  ENDIF(HAVE_GLPK)
45
  IF(HAVE_CPLEX)
46
    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
47
  ENDIF(HAVE_CPLEX)
48
  TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
44 49
  ADD_TEST(lp_test lp_test)
45 50

	
46 51
  IF(WIN32 AND HAVE_GLPK)
47 52
    GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
48 53
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
49 54
    ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
50 55
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
51 56
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
52 57
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
53 58
    )
54 59
  ENDIF(WIN32 AND HAVE_GLPK)
60
  IF(WIN32 AND HAVE_CPLEX)
61
    GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
62
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
63
    ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
64
      COMMAND cmake -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
65
    )
66
  ENDIF(WIN32 AND HAVE_CPLEX)
55 67
ENDIF(HAVE_LP)
56 68

	
57 69
IF(HAVE_MIP)
58 70
  ADD_EXECUTABLE(mip_test mip_test.cc)
71
  SET(MIP_TEST_LIBS lemon)
59 72
  IF(HAVE_GLPK)
60
    TARGET_LINK_LIBRARIES(mip_test lemon ${GLPK_LIBRARIES})
73
    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
61 74
  ENDIF(HAVE_GLPK)
75
  IF(HAVE_CPLEX)
76
    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
77
  ENDIF(HAVE_CPLEX)
78
  TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
62 79
  ADD_TEST(mip_test mip_test)
63 80

	
64 81
  IF(WIN32 AND HAVE_GLPK)
65 82
    GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
66 83
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
67 84
    ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
68 85
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
69 86
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
70 87
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
71 88
    )
72 89
  ENDIF(WIN32 AND HAVE_GLPK)
90
  IF(WIN32 AND HAVE_CPLEX)
91
    GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
92
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
93
    ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
94
      COMMAND cmake -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
95
    )
96
  ENDIF(WIN32 AND HAVE_CPLEX)
73 97
ENDIF(HAVE_MIP)
74 98

	
75 99
FOREACH(TEST_NAME ${TESTS})
76 100
  ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
77 101
  TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
78 102
  ADD_TEST(${TEST_NAME} ${TEST_NAME})
79 103
ENDFOREACH(TEST_NAME)
0 comments (0 inline)