lemon/CMakeLists.txt
author Peter Kovacs <kpeter@inf.elte.hu>
Fri, 13 Nov 2009 00:10:33 +0100
changeset 815 aef153f430e1
parent 675 c5dc4d3124aa
child 904 16d466589b54
permissions -rw-r--r--
Entirely rework cycle canceling algorithms (#180)

- Move the cycle canceling algorithms (CycleCanceling, CancelAndTighten)
into one class (CycleCanceling).
- Add a Method parameter to the run() function to be able to select
the used cycle canceling method.
- Use the new interface similarly to NetworkSimplex.
- Rework the implementations using an efficient internal structure
for handling the residual network.
This improvement made the codes much faster.
- Handle GEQ supply type (LEQ is not supported).
- Handle infinite upper bounds.
- Handle negative costs (for arcs of finite upper bound).
- Extend the documentation.
     1 INCLUDE_DIRECTORIES(
     2   ${PROJECT_SOURCE_DIR}
     3   ${PROJECT_BINARY_DIR}
     4 )
     5 
     6 CONFIGURE_FILE(
     7   ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
     8   ${CMAKE_CURRENT_BINARY_DIR}/config.h
     9 )
    10 
    11 SET(LEMON_SOURCES
    12   arg_parser.cc
    13   base.cc
    14   color.cc
    15   lp_base.cc
    16   lp_skeleton.cc
    17   random.cc
    18   bits/windows.cc
    19 )
    20 
    21 IF(LEMON_HAVE_GLPK)
    22   SET(LEMON_SOURCES ${LEMON_SOURCES} glpk.cc)
    23   INCLUDE_DIRECTORIES(${GLPK_INCLUDE_DIRS})
    24   IF(WIN32)
    25     INSTALL(FILES ${GLPK_BIN_DIR}/glpk.dll DESTINATION bin)
    26     INSTALL(FILES ${GLPK_BIN_DIR}/libltdl3.dll DESTINATION bin)
    27     INSTALL(FILES ${GLPK_BIN_DIR}/zlib1.dll DESTINATION bin)
    28   ENDIF()
    29 ENDIF()
    30 
    31 IF(LEMON_HAVE_CPLEX)
    32   SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
    33   INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
    34 ENDIF()
    35 
    36 IF(LEMON_HAVE_CLP)
    37   SET(LEMON_SOURCES ${LEMON_SOURCES} clp.cc)
    38   INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
    39 ENDIF()
    40 
    41 IF(LEMON_HAVE_CBC)
    42   SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc)
    43   INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
    44 ENDIF()
    45 
    46 ADD_LIBRARY(lemon ${LEMON_SOURCES})
    47 IF(UNIX)
    48   SET_TARGET_PROPERTIES(lemon PROPERTIES OUTPUT_NAME emon)
    49 ENDIF()
    50 
    51 INSTALL(
    52   TARGETS lemon
    53   ARCHIVE DESTINATION lib
    54   COMPONENT library
    55 )
    56 
    57 INSTALL(
    58   DIRECTORY . bits concepts
    59   DESTINATION include/lemon
    60   COMPONENT headers
    61   FILES_MATCHING PATTERN "*.h"
    62 )
    63 
    64 INSTALL(
    65   FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
    66   DESTINATION include/lemon
    67   COMPONENT headers
    68 )