gravatar
ladanyi@tmit.bme.hu
ladanyi@tmit.bme.hu
Minor CMake improvements * Use the empty ELSE(), ENDIF(), ENDMACRO(), etc. syntax since this improves readability and requires less typing. * Use FIND_PACKAGE() instead of INCLUDE(). * Use the value of CMAKE_COMMAND variable instead of cmake, since this works even if cmake is not in the PATH.
0 6 0
default
6 files changed with 58 insertions and 45 deletions:
↑ Collapse diff ↑
Show white space 24 line context
... ...
@@ -13,63 +13,62 @@
13 13
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
14 14
    OUTPUT_VARIABLE HG_REVISION
15 15
    ERROR_QUIET
16 16
    OUTPUT_STRIP_TRAILING_WHITESPACE
17 17
  )
18 18
  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
19 19
ENDIF()
20 20

	
21 21
SET(PROJECT_VERSION ${LEMON_VERSION})
22 22

	
23 23
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
24 24

	
25
INCLUDE(FindDoxygen)
26
INCLUDE(FindGhostscript)
25
FIND_PACKAGE(Doxygen)
26
FIND_PACKAGE(Ghostscript)
27 27
FIND_PACKAGE(GLPK 4.33)
28 28
FIND_PACKAGE(CPLEX)
29 29
FIND_PACKAGE(COIN)
30 30

	
31 31
INCLUDE(CheckTypeSize)
32 32
CHECK_TYPE_SIZE("long long" LONG_LONG)
33 33
SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
34 34

	
35 35
ENABLE_TESTING()
36 36

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

	
45 45
CONFIGURE_FILE(
46 46
  ${PROJECT_SOURCE_DIR}/cmake/LEMONConfig.cmake.in
47 47
  ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
48 48
  @ONLY
49 49
)
50 50
IF(UNIX)
51 51
  INSTALL(
52 52
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
53 53
    DESTINATION share/lemon/cmake
54 54
  )
55 55
ELSEIF(WIN32)
56 56
  INSTALL(
57 57
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
58 58
    DESTINATION cmake
59 59
  )
60
ENDIF(UNIX)
60
ENDIF()
61 61

	
62
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
63
  IF(WIN32)
62
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} AND WIN32)
64 63
    SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
65 64
    SET(CPACK_PACKAGE_VENDOR "EGRES")
66 65
    SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
67 66
      "LEMON - Library for Efficient Modeling and Optimization in Networks")
68 67
    SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
69 68

	
70 69
    SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
71 70

	
72 71
    SET(CPACK_PACKAGE_INSTALL_DIRECTORY
73 72
      "${PROJECT_NAME} ${PROJECT_VERSION}")
74 73
    SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
75 74
      "${PROJECT_NAME} ${PROJECT_VERSION}")
... ...
@@ -116,14 +115,13 @@
116 115
    SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lemon.cs.elte.hu")
117 116
    SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lemon.cs.elte.hu")
118 117
    SET(CPACK_NSIS_CONTACT "lemon-user@lemon.cs.elte.hu")
119 118
    SET(CPACK_NSIS_CREATE_ICONS_EXTRA "
120 119
      CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Documentation.lnk\\\" \\\"$INSTDIR\\\\share\\\\doc\\\\index.html\\\"
121 120
      ")
122 121
    SET(CPACK_NSIS_DELETE_ICONS_EXTRA "
123 122
      !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
124 123
      Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\Documentation.lnk\\\"
125 124
      ")
126 125

	
127 126
    INCLUDE(CPack)
128
  ENDIF(WIN32)
129
ENDIF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
127
ENDIF()
Show white space 24 line context
1 1
INCLUDE_DIRECTORIES(
2 2
  ${PROJECT_SOURCE_DIR}
3 3
  ${PROJECT_BINARY_DIR}
4 4
)
5 5

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

	
8 10
SET(DEMOS
9 11
  arg_parser_demo
10 12
  graph_to_eps_demo
11
  lgf_demo)
13
  lgf_demo
14
)
12 15

	
13 16
FOREACH(DEMO_NAME ${DEMOS})
14 17
  ADD_EXECUTABLE(${DEMO_NAME} ${DEMO_NAME}.cc)
15 18
  TARGET_LINK_LIBRARIES(${DEMO_NAME} lemon)
16
ENDFOREACH(DEMO_NAME)
19
ENDFOREACH()
Show white space 24 line context
... ...
@@ -37,15 +37,15 @@
37 37
  IF(UNIX)
38 38
    INSTALL(
39 39
      DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
40 40
      DESTINATION share/doc/lemon/html
41 41
      COMPONENT html_documentation
42 42
    )
43 43
  ELSEIF(WIN32)
44 44
    INSTALL(
45 45
      DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
46 46
      DESTINATION doc
47 47
      COMPONENT html_documentation
48 48
    )
49
  ENDIF(UNIX)
49
  ENDIF()
50 50

	
51
ENDIF(DOXYGEN_EXECUTABLE AND GHOSTSCRIPT_EXECUTABLE)
51
ENDIF()
Show white space 24 line context
... ...
@@ -16,46 +16,46 @@
16 16
  lp_skeleton.cc
17 17
  random.cc
18 18
  bits/windows.cc
19 19
)
20 20

	
21 21
IF(LEMON_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
  ENDIF(WIN32)
29
ENDIF(LEMON_HAVE_GLPK)
28
  ENDIF()
29
ENDIF()
30 30

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

	
36 36
IF(LEMON_HAVE_CLP)
37 37
  SET(LEMON_SOURCES ${LEMON_SOURCES} clp.cc)
38 38
  INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
39
ENDIF(LEMON_HAVE_CLP)
39
ENDIF()
40 40

	
41 41
IF(LEMON_HAVE_CBC)
42 42
  SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc)
43 43
  INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
44
ENDIF(LEMON_HAVE_CBC)
44
ENDIF()
45 45

	
46 46
ADD_LIBRARY(lemon ${LEMON_SOURCES})
47 47
IF(UNIX)
48 48
  SET_TARGET_PROPERTIES(lemon PROPERTIES OUTPUT_NAME emon)
49
ENDIF(UNIX)
49
ENDIF()
50 50

	
51 51
INSTALL(
52 52
  TARGETS lemon
53 53
  ARCHIVE DESTINATION lib
54 54
  COMPONENT library
55 55
)
56 56

	
57 57
INSTALL(
58 58
  DIRECTORY . bits concepts
59 59
  DESTINATION include/lemon
60 60
  COMPONENT headers
61 61
  FILES_MATCHING PATTERN "*.h"
Show white space 24 line context
1 1
INCLUDE_DIRECTORIES(
2 2
  ${PROJECT_SOURCE_DIR}
3 3
  ${PROJECT_BINARY_DIR}
4 4
)
5 5

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

	
8 10
SET(TESTS
9 11
  adaptors_test
10 12
  bfs_test
11 13
  circulation_test
12 14
  connectivity_test
13 15
  counter_test
14 16
  dfs_test
15 17
  digraph_test
16 18
  dijkstra_test
17 19
  dim_test
18 20
  edge_set_test
... ...
@@ -26,85 +28,92 @@
26 28
  heap_test
27 29
  kruskal_test
28 30
  maps_test
29 31
  matching_test
30 32
  min_cost_arborescence_test
31 33
  min_cost_flow_test
32 34
  path_test
33 35
  preflow_test
34 36
  radix_sort_test
35 37
  random_test
36 38
  suurballe_test
37 39
  time_measure_test
38
  unionfind_test)
40
  unionfind_test
41
)
39 42

	
40 43
IF(LEMON_HAVE_LP)
41 44
  ADD_EXECUTABLE(lp_test lp_test.cc)
42 45
  SET(LP_TEST_LIBS lemon)
46

	
43 47
  IF(LEMON_HAVE_GLPK)
44 48
    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
45
  ENDIF(LEMON_HAVE_GLPK)
49
  ENDIF()
46 50
  IF(LEMON_HAVE_CPLEX)
47 51
    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
48
  ENDIF(LEMON_HAVE_CPLEX)
52
  ENDIF()
49 53
  IF(LEMON_HAVE_CLP)
50 54
    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
51
  ENDIF(LEMON_HAVE_CLP)
55
  ENDIF()
56

	
52 57
  TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
53 58
  ADD_TEST(lp_test lp_test)
54 59

	
55 60
  IF(WIN32 AND LEMON_HAVE_GLPK)
56 61
    GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
57 62
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
58 63
    ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
59
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
60
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
61
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
64
      COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
65
      COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
66
      COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
62 67
    )
63
  ENDIF(WIN32 AND LEMON_HAVE_GLPK)
68
  ENDIF()
69

	
64 70
  IF(WIN32 AND LEMON_HAVE_CPLEX)
65 71
    GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
66 72
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
67 73
    ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
68
      COMMAND cmake -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
74
      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
69 75
    )
70
  ENDIF(WIN32 AND LEMON_HAVE_CPLEX)
71
ENDIF(LEMON_HAVE_LP)
76
  ENDIF()
77
ENDIF()
72 78

	
73 79
IF(LEMON_HAVE_MIP)
74 80
  ADD_EXECUTABLE(mip_test mip_test.cc)
75 81
  SET(MIP_TEST_LIBS lemon)
82

	
76 83
  IF(LEMON_HAVE_GLPK)
77 84
    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
78
  ENDIF(LEMON_HAVE_GLPK)
85
  ENDIF()
79 86
  IF(LEMON_HAVE_CPLEX)
80 87
    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
81
  ENDIF(LEMON_HAVE_CPLEX)
88
  ENDIF()
82 89
  IF(LEMON_HAVE_CBC)
83 90
    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
84
  ENDIF(LEMON_HAVE_CBC)
91
  ENDIF()
92

	
85 93
  TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
86 94
  ADD_TEST(mip_test mip_test)
87 95

	
88 96
  IF(WIN32 AND LEMON_HAVE_GLPK)
89 97
    GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
90 98
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
91 99
    ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
92
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
93
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
94
      COMMAND cmake -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
100
      COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
101
      COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
102
      COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
95 103
    )
96
  ENDIF(WIN32 AND LEMON_HAVE_GLPK)
104
  ENDIF()
105

	
97 106
  IF(WIN32 AND LEMON_HAVE_CPLEX)
98 107
    GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
99 108
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
100 109
    ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
101
      COMMAND cmake -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
110
      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
102 111
    )
103
  ENDIF(WIN32 AND LEMON_HAVE_CPLEX)
104
ENDIF(LEMON_HAVE_MIP)
112
  ENDIF()
113
ENDIF()
105 114

	
106 115
FOREACH(TEST_NAME ${TESTS})
107 116
  ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
108 117
  TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
109 118
  ADD_TEST(${TEST_NAME} ${TEST_NAME})
110
ENDFOREACH(TEST_NAME)
119
ENDFOREACH()
Show white space 24 line context
1 1
INCLUDE_DIRECTORIES(
2 2
  ${PROJECT_SOURCE_DIR}
3 3
  ${PROJECT_BINARY_DIR}
4 4
)
5 5

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

	
8 10
ADD_EXECUTABLE(lgf-gen lgf-gen.cc)
9 11
TARGET_LINK_LIBRARIES(lgf-gen lemon)
10 12

	
11 13
ADD_EXECUTABLE(dimacs-to-lgf dimacs-to-lgf.cc)
12 14
TARGET_LINK_LIBRARIES(dimacs-to-lgf lemon)
13 15

	
14 16
ADD_EXECUTABLE(dimacs-solver dimacs-solver.cc)
15 17
TARGET_LINK_LIBRARIES(dimacs-solver lemon)
16 18

	
17 19
INSTALL(
18 20
  TARGETS lgf-gen dimacs-to-lgf dimacs-solver
19 21
  RUNTIME DESTINATION bin
20 22
  COMPONENT bin
21 23
)
22 24

	
23 25
IF(NOT WIN32)
24 26
  INSTALL(
25 27
    PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/lemon-0.x-to-1.x.sh
26 28
    DESTINATION bin
27
    COMPONENT bin)
28
ENDIF(NOT WIN32)
29
    COMPONENT bin
30
  )
31
ENDIF()
0 comments (0 inline)