lemon/CMakeLists.txt
author Peter Kovacs <kpeter@inf.elte.hu>
Thu, 12 Nov 2009 23:30:45 +0100
changeset 809 22bb98ca0101
parent 675 c5dc4d3124aa
child 904 16d466589b54
permissions -rw-r--r--
Entirely rework CostScaling (#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.
- Handle GEQ supply type (LEQ is not supported).
- Handle infinite upper bounds.
- Handle negative costs (for arcs of finite upper bound).
- Traits class + named parameter for the LargeCost type used in
internal computations.
- Extend the documentation.
ladanyi@499
     1
INCLUDE_DIRECTORIES(
ladanyi@549
     2
  ${PROJECT_SOURCE_DIR}
ladanyi@499
     3
  ${PROJECT_BINARY_DIR}
ladanyi@499
     4
)
ladanyi@499
     5
ladanyi@499
     6
CONFIGURE_FILE(
ladanyi@499
     7
  ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
ladanyi@499
     8
  ${CMAKE_CURRENT_BINARY_DIR}/config.h
ladanyi@499
     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@482
    17
  random.cc
alpar@482
    18
  bits/windows.cc
alpar@482
    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@475
    24
  IF(WIN32)
ladanyi@475
    25
    INSTALL(FILES ${GLPK_BIN_DIR}/glpk.dll DESTINATION bin)
ladanyi@475
    26
    INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin)
ladanyi@475
    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@499
    63
ladanyi@499
    64
INSTALL(
ladanyi@499
    65
  FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
ladanyi@499
    66
  DESTINATION include/lemon
ladanyi@675
    67
  COMPONENT headers
ladanyi@675
    68
)