lemon/CMakeLists.txt
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:26:13 +0100
changeset 806 fa6f37d7a25b
parent 675 c5dc4d3124aa
child 908 10242c611190
permissions -rw-r--r--
Entirely rework CapacityScaling (#180)

- Use the new interface similarly to NetworkSimplex.
- Rework the implementation using an efficient internal structure
for handling the residual network. This improvement made the
code much faster (up to 2-5 times faster on large graphs).
- Handle GEQ supply type (LEQ is not supported).
- Handle negative costs for arcs of finite capacity.
(Note that this algorithm cannot handle arcs of negative cost
and infinite upper bound, thus it returns UNBOUNDED if such
an arc exists.)
- Extend the documentation.
ladanyi@510
     1
INCLUDE_DIRECTORIES(
ladanyi@549
     2
  ${PROJECT_SOURCE_DIR}
ladanyi@510
     3
  ${PROJECT_BINARY_DIR}
ladanyi@510
     4
)
ladanyi@510
     5
ladanyi@510
     6
CONFIGURE_FILE(
ladanyi@510
     7
  ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
ladanyi@510
     8
  ${CMAKE_CURRENT_BINARY_DIR}/config.h
ladanyi@510
     9
)
alpar@225
    10
ladanyi@473
    11
SET(LEMON_SOURCES
alpar@225
    12
  arg_parser.cc
alpar@225
    13
  base.cc
alpar@225
    14
  color.cc
ladanyi@473
    15
  lp_base.cc
ladanyi@473
    16
  lp_skeleton.cc
alpar@491
    17
  random.cc
alpar@491
    18
  bits/windows.cc
alpar@491
    19
)
alpar@225
    20
ladanyi@627
    21
IF(LEMON_HAVE_GLPK)
ladanyi@473
    22
  SET(LEMON_SOURCES ${LEMON_SOURCES} glpk.cc)
ladanyi@619
    23
  INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIRS})
ladanyi@474
    24
  IF(WIN32)
ladanyi@474
    25
    INSTALL(FILES ${GLPK_BIN_DIR}/glpk.dll DESTINATION bin)
ladanyi@474
    26
    INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin)
ladanyi@474
    27
    INSTALL(FILES ${GLPK_BIN_DIR}/zlib1.dll DESTINATION bin)
ladanyi@679
    28
  ENDIF()
ladanyi@679
    29
ENDIF()
ladanyi@473
    30
ladanyi@627
    31
IF(LEMON_HAVE_CPLEX)
ladanyi@620
    32
  SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
ladanyi@620
    33
  INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
ladanyi@679
    34
ENDIF()
ladanyi@620
    35
ladanyi@627
    36
IF(LEMON_HAVE_CLP)
ladanyi@621
    37
  SET(LEMON_SOURCES ${LEMON_SOURCES} clp.cc)
ladanyi@621
    38
  INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
ladanyi@679
    39
ENDIF()
ladanyi@621
    40
ladanyi@627
    41
IF(LEMON_HAVE_CBC)
ladanyi@621
    42
  SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc)
ladanyi@621
    43
  INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
ladanyi@679
    44
ENDIF()
ladanyi@621
    45
ladanyi@473
    46
ADD_LIBRARY(lemon ${LEMON_SOURCES})
ladanyi@675
    47
IF(UNIX)
ladanyi@675
    48
  SET_TARGET_PROPERTIES(lemon PROPERTIES OUTPUT_NAME emon)
ladanyi@679
    49
ENDIF()
ladanyi@473
    50
alpar@225
    51
INSTALL(
alpar@225
    52
  TARGETS lemon
alpar@225
    53
  ARCHIVE DESTINATION lib
ladanyi@675
    54
  COMPONENT library
ladanyi@675
    55
)
alpar@225
    56
alpar@225
    57
INSTALL(
alpar@225
    58
  DIRECTORY . bits concepts
alpar@225
    59
  DESTINATION include/lemon
alpar@225
    60
  COMPONENT headers
ladanyi@675
    61
  FILES_MATCHING PATTERN "*.h"
ladanyi@675
    62
)
ladanyi@510
    63
ladanyi@510
    64
INSTALL(
ladanyi@510
    65
  FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
ladanyi@510
    66
  DESTINATION include/lemon
ladanyi@675
    67
  COMPONENT headers
ladanyi@675
    68
)