Location: LEMON/LEMON-official/CMakeLists.txt - annotation

Load file history
gravatar
kpeter (Peter Kovacs)
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.
 r225:c5a40fc54f1a
 r225:c5a40fc54f1a
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r225:c5a40fc54f1a
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r727:257e91516e09
 r727:257e91516e09
 r727:257e91516e09
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r725:d1e1cd94bf49
 r225:c5a40fc54f1a
 r596:ba659d676331
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r496:17d918051964
 r667:c3ce597c11ae
 r668:b536eaacb39b
 r496:17d918051964
 r515:7992dcb0d0e6
 r724:a0265f621d39
 r724:a0265f621d39
 r515:7992dcb0d0e6
 r791:f8c468367dab
 r791:f8c468367dab
 r225:c5a40fc54f1a
 r225:c5a40fc54f1a
 r225:c5a40fc54f1a
 r596:ba659d676331
 r596:ba659d676331
 r596:ba659d676331
 r596:ba659d676331
 r596:ba659d676331
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r722:c5dc4d3124aa
 r726:9c7639f3a741
 r722:c5dc4d3124aa
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r726:9c7639f3a741
 r225:c5a40fc54f1a
 r726:9c7639f3a741
 r726:9c7639f3a741
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)

SET(PROJECT_NAME "LEMON")
PROJECT(${PROJECT_NAME})

IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
ELSEIF(DEFINED ENV{LEMON_VERSION})
  SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
ELSE()
  EXECUTE_PROCESS(
    COMMAND hg id -i
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
    OUTPUT_VARIABLE HG_REVISION
    ERROR_QUIET
    OUTPUT_STRIP_TRAILING_WHITESPACE
  )
  IF(HG_REVISION STREQUAL "")
    SET(HG_REVISION "hg-tip")
  ENDIF()
  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
ENDIF()

SET(PROJECT_VERSION ${LEMON_VERSION})

SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

FIND_PACKAGE(Doxygen)
FIND_PACKAGE(Ghostscript)
FIND_PACKAGE(GLPK 4.33)
FIND_PACKAGE(CPLEX)
FIND_PACKAGE(COIN)

INCLUDE(CheckTypeSize)
CHECK_TYPE_SIZE("long long" LONG_LONG)
SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})

INCLUDE(FindPythonInterp)

ENABLE_TESTING()

ADD_SUBDIRECTORY(lemon)
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
  ADD_SUBDIRECTORY(demo)
  ADD_SUBDIRECTORY(tools)
  ADD_SUBDIRECTORY(doc)
  ADD_SUBDIRECTORY(test)
ENDIF()

CONFIGURE_FILE(
  ${PROJECT_SOURCE_DIR}/cmake/LEMONConfig.cmake.in
  ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
  @ONLY
)
IF(UNIX)
  INSTALL(
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
    DESTINATION share/lemon/cmake
  )
ELSEIF(WIN32)
  INSTALL(
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
    DESTINATION cmake
  )
ENDIF()

IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} AND WIN32)
  SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
  SET(CPACK_PACKAGE_VENDOR "EGRES")
  SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
    "LEMON - Library for Efficient Modeling and Optimization in Networks")
  SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")

  SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})

  SET(CPACK_PACKAGE_INSTALL_DIRECTORY
    "${PROJECT_NAME} ${PROJECT_VERSION}")
  SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
    "${PROJECT_NAME} ${PROJECT_VERSION}")

  SET(CPACK_COMPONENTS_ALL headers library html_documentation bin)

  SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
  SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library")
  SET(CPACK_COMPONENT_BIN_DISPLAY_NAME "Command line utilities")
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")

  SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
    "C++ header files")
  SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION
    "DLL and import library")
  SET(CPACK_COMPONENT_BIN_DESCRIPTION
    "Command line utilities")
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION
    "Doxygen generated documentation")

  SET(CPACK_COMPONENT_HEADERS_DEPENDS library)

  SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
  SET(CPACK_COMPONENT_LIBRARY_GROUP "Development")
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_GROUP "Documentation")

  SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
    "Components needed to develop software using LEMON")
  SET(CPACK_COMPONENT_GROUP_DOCUMENTATION_DESCRIPTION
    "Documentation of LEMON")

  SET(CPACK_ALL_INSTALL_TYPES Full Developer)

  SET(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
  SET(CPACK_COMPONENT_LIBRARY_INSTALL_TYPES Developer Full)
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_INSTALL_TYPES Full)

  SET(CPACK_GENERATOR "NSIS")
  SET(CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis/lemon.ico")
  SET(CPACK_NSIS_MUI_UNIICON "${PROJECT_SOURCE_DIR}/cmake/nsis/uninstall.ico")
  #SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\lemon.ico")
  SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
  SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lemon.cs.elte.hu")
  SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lemon.cs.elte.hu")
  SET(CPACK_NSIS_CONTACT "lemon-user@lemon.cs.elte.hu")
  SET(CPACK_NSIS_CREATE_ICONS_EXTRA "
    CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Documentation.lnk\\\" \\\"$INSTDIR\\\\share\\\\doc\\\\index.html\\\"
    ")
  SET(CPACK_NSIS_DELETE_ICONS_EXTRA "
    !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
    Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\Documentation.lnk\\\"
    ")

  INCLUDE(CPack)
ENDIF()