CMakeLists.txt
author Balazs Dezso <deba@inf.elte.hu>
Thu, 24 Jun 2010 09:27:53 +0200
changeset 894 bb70ad62c95f
parent 679 9c7639f3a741
child 744 f8c468367dab
child 904 16d466589b54
permissions -rw-r--r--
Fix critical bug in preflow (#372)

The wrong transition between the bound decrease and highest active
heuristics caused the bug. The last node chosen in bound decrease mode
is used in the first iteration in highest active mode.
alpar@225
     1
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
alpar@225
     2
ladanyi@678
     3
SET(PROJECT_NAME "LEMON")
ladanyi@678
     4
PROJECT(${PROJECT_NAME})
alpar@225
     5
ladanyi@678
     6
IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
ladanyi@678
     7
  INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
ladanyi@678
     8
ELSEIF(DEFINED ENV{LEMON_VERSION})
ladanyi@678
     9
  SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
ladanyi@678
    10
ELSE()
ladanyi@678
    11
  EXECUTE_PROCESS(
ladanyi@678
    12
    COMMAND hg id -i
ladanyi@678
    13
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
ladanyi@678
    14
    OUTPUT_VARIABLE HG_REVISION
ladanyi@678
    15
    ERROR_QUIET
ladanyi@678
    16
    OUTPUT_STRIP_TRAILING_WHITESPACE
ladanyi@678
    17
  )
ladanyi@680
    18
  IF(HG_REVISION STREQUAL "")
ladanyi@680
    19
    SET(HG_REVISION "hg-tip")
ladanyi@680
    20
  ENDIF()
ladanyi@678
    21
  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
ladanyi@678
    22
ENDIF()
ladanyi@678
    23
ladanyi@678
    24
SET(PROJECT_VERSION ${LEMON_VERSION})
alpar@225
    25
ladanyi@549
    26
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
alpar@225
    27
ladanyi@679
    28
FIND_PACKAGE(Doxygen)
ladanyi@679
    29
FIND_PACKAGE(Ghostscript)
ladanyi@473
    30
FIND_PACKAGE(GLPK 4.33)
ladanyi@620
    31
FIND_PACKAGE(CPLEX)
ladanyi@621
    32
FIND_PACKAGE(COIN)
ladanyi@473
    33
alpar@485
    34
INCLUDE(CheckTypeSize)
ladanyi@677
    35
CHECK_TYPE_SIZE("long long" LONG_LONG)
ladanyi@677
    36
SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
alpar@485
    37
alpar@225
    38
ENABLE_TESTING()
alpar@225
    39
alpar@225
    40
ADD_SUBDIRECTORY(lemon)
ladanyi@549
    41
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
ladanyi@549
    42
  ADD_SUBDIRECTORY(demo)
ladanyi@549
    43
  ADD_SUBDIRECTORY(tools)
ladanyi@549
    44
  ADD_SUBDIRECTORY(doc)
ladanyi@549
    45
  ADD_SUBDIRECTORY(test)
ladanyi@679
    46
ENDIF()
alpar@225
    47
ladanyi@675
    48
CONFIGURE_FILE(
ladanyi@675
    49
  ${PROJECT_SOURCE_DIR}/cmake/LEMONConfig.cmake.in
ladanyi@675
    50
  ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
ladanyi@675
    51
  @ONLY
ladanyi@675
    52
)
ladanyi@675
    53
IF(UNIX)
ladanyi@675
    54
  INSTALL(
ladanyi@675
    55
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
ladanyi@675
    56
    DESTINATION share/lemon/cmake
ladanyi@675
    57
  )
ladanyi@675
    58
ELSEIF(WIN32)
ladanyi@675
    59
  INSTALL(
ladanyi@675
    60
    FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake
ladanyi@675
    61
    DESTINATION cmake
ladanyi@675
    62
  )
ladanyi@679
    63
ENDIF()
ladanyi@675
    64
ladanyi@679
    65
IF(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} AND WIN32)
ladanyi@679
    66
  SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
ladanyi@679
    67
  SET(CPACK_PACKAGE_VENDOR "EGRES")
ladanyi@679
    68
  SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
ladanyi@679
    69
    "LEMON - Library for Efficient Modeling and Optimization in Networks")
ladanyi@679
    70
  SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
alpar@225
    71
ladanyi@679
    72
  SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
alpar@225
    73
ladanyi@679
    74
  SET(CPACK_PACKAGE_INSTALL_DIRECTORY
ladanyi@679
    75
    "${PROJECT_NAME} ${PROJECT_VERSION}")
ladanyi@679
    76
  SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
ladanyi@679
    77
    "${PROJECT_NAME} ${PROJECT_VERSION}")
alpar@225
    78
ladanyi@679
    79
  SET(CPACK_COMPONENTS_ALL headers library html_documentation bin)
alpar@225
    80
ladanyi@679
    81
  SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
ladanyi@679
    82
  SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library")
ladanyi@679
    83
  SET(CPACK_COMPONENT_BIN_DISPLAY_NAME "Command line utilities")
ladanyi@679
    84
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")
alpar@225
    85
ladanyi@679
    86
  SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
ladanyi@679
    87
    "C++ header files")
ladanyi@679
    88
  SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION
ladanyi@679
    89
    "DLL and import library")
ladanyi@679
    90
  SET(CPACK_COMPONENT_BIN_DESCRIPTION
ladanyi@679
    91
    "Command line utilities")
ladanyi@679
    92
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION
ladanyi@679
    93
    "Doxygen generated documentation")
alpar@225
    94
ladanyi@679
    95
  SET(CPACK_COMPONENT_HEADERS_DEPENDS library)
alpar@225
    96
ladanyi@679
    97
  SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
ladanyi@679
    98
  SET(CPACK_COMPONENT_LIBRARY_GROUP "Development")
ladanyi@679
    99
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_GROUP "Documentation")
alpar@225
   100
ladanyi@679
   101
  SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
ladanyi@679
   102
    "Components needed to develop software using LEMON")
ladanyi@679
   103
  SET(CPACK_COMPONENT_GROUP_DOCUMENTATION_DESCRIPTION
ladanyi@679
   104
    "Documentation of LEMON")
alpar@225
   105
ladanyi@679
   106
  SET(CPACK_ALL_INSTALL_TYPES Full Developer)
alpar@225
   107
ladanyi@679
   108
  SET(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
ladanyi@679
   109
  SET(CPACK_COMPONENT_LIBRARY_INSTALL_TYPES Developer Full)
ladanyi@679
   110
  SET(CPACK_COMPONENT_HTML_DOCUMENTATION_INSTALL_TYPES Full)
alpar@225
   111
ladanyi@679
   112
  SET(CPACK_GENERATOR "NSIS")
ladanyi@679
   113
  SET(CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis/lemon.ico")
ladanyi@679
   114
  SET(CPACK_NSIS_MUI_UNIICON "${PROJECT_SOURCE_DIR}/cmake/nsis/uninstall.ico")
ladanyi@679
   115
  #SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
ladanyi@679
   116
  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\lemon.ico")
ladanyi@679
   117
  SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
ladanyi@679
   118
  SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lemon.cs.elte.hu")
ladanyi@679
   119
  SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lemon.cs.elte.hu")
ladanyi@679
   120
  SET(CPACK_NSIS_CONTACT "lemon-user@lemon.cs.elte.hu")
ladanyi@679
   121
  SET(CPACK_NSIS_CREATE_ICONS_EXTRA "
ladanyi@679
   122
    CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Documentation.lnk\\\" \\\"$INSTDIR\\\\share\\\\doc\\\\index.html\\\"
ladanyi@679
   123
    ")
ladanyi@679
   124
  SET(CPACK_NSIS_DELETE_ICONS_EXTRA "
ladanyi@679
   125
    !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
ladanyi@679
   126
    Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\Documentation.lnk\\\"
ladanyi@679
   127
    ")
alpar@225
   128
ladanyi@679
   129
  INCLUDE(CPack)
ladanyi@679
   130
ENDIF()