CMakeLists.txt
author Peter Kovacs <kpeter@inf.elte.hu>
Fri, 17 Apr 2009 18:04:36 +0200
changeset 609 e6927fe719e6
parent 518 8668e1b5dafb
child 549 ba659d676331
permissions -rw-r--r--
Support >= and <= constraints in NetworkSimplex (#219, #234)

By default the same inequality constraints are supported as by
Circulation (the GEQ form), but the LEQ form can also be selected
using the problemType() function.

The documentation of the min. cost flow module is reworked and
extended with important notes and explanations about the different
variants of the problem and about the dual solution and optimality
conditions.
     1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
     2 
     3 IF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
     4   INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake)
     5 ELSE(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
     6   SET(PROJECT_NAME "LEMON")
     7   SET(PROJECT_VERSION "hg-tip" CACHE STRING "LEMON version string.")
     8 ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
     9 
    10 PROJECT(${PROJECT_NAME})
    11 
    12 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
    13 
    14 INCLUDE(FindDoxygen)
    15 INCLUDE(FindGhostscript)
    16 FIND_PACKAGE(GLPK 4.33)
    17 
    18 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
    19 
    20 IF(MSVC)
    21   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4250 /wd4355 /wd4800 /wd4996")
    22 # Suppressed warnings:
    23 # C4250: 'class1' : inherits 'class2::member' via dominance
    24 # C4355: 'this' : used in base member initializer list
    25 # C4800: 'type' : forcing value to bool 'true' or 'false' (performance warning)
    26 # C4996: 'function': was declared deprecated
    27 ENDIF(MSVC)
    28 
    29 IF(GLPK_FOUND)
    30   SET(HAVE_LP TRUE)
    31   SET(HAVE_MIP TRUE)
    32   SET(HAVE_GLPK TRUE)
    33 ENDIF(GLPK_FOUND)
    34 
    35 INCLUDE(CheckTypeSize)
    36 CHECK_TYPE_SIZE("long long" LONG_LONG)
    37 
    38 ENABLE_TESTING()
    39 
    40 ADD_SUBDIRECTORY(lemon)
    41 ADD_SUBDIRECTORY(demo)
    42 ADD_SUBDIRECTORY(tools)
    43 ADD_SUBDIRECTORY(doc)
    44 ADD_SUBDIRECTORY(test)
    45 
    46 IF(WIN32)
    47   SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
    48   SET(CPACK_PACKAGE_VENDOR "EGRES")
    49   SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
    50     "LEMON - Library of Efficient Models and Optimization in Networks")
    51   SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
    52 
    53   SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
    54 
    55   SET(CPACK_PACKAGE_INSTALL_DIRECTORY
    56     "${PROJECT_NAME} ${PROJECT_VERSION}")
    57   SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
    58     "${PROJECT_NAME} ${PROJECT_VERSION}")
    59 
    60   SET(CPACK_COMPONENTS_ALL headers library html_documentation bin)
    61 
    62   SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
    63   SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library")
    64   SET(CPACK_COMPONENT_BIN_DISPLAY_NAME "Command line utilities")
    65   SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")
    66 
    67   SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
    68     "C++ header files")
    69   SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION
    70     "DLL and import library")
    71   SET(CPACK_COMPONENT_BIN_DESCRIPTION
    72     "Command line utilities")
    73   SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION
    74     "Doxygen generated documentation")
    75 
    76   SET(CPACK_COMPONENT_HEADERS_DEPENDS library)
    77 
    78   SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
    79   SET(CPACK_COMPONENT_LIBRARY_GROUP "Development")
    80   SET(CPACK_COMPONENT_HTML_DOCUMENTATION_GROUP "Documentation")
    81 
    82   SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
    83     "Components needed to develop software using LEMON")
    84   SET(CPACK_COMPONENT_GROUP_DOCUMENTATION_DESCRIPTION
    85     "Documentation of LEMON")
    86 
    87   SET(CPACK_ALL_INSTALL_TYPES Full Developer)
    88 
    89   SET(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
    90   SET(CPACK_COMPONENT_LIBRARY_INSTALL_TYPES Developer Full)
    91   SET(CPACK_COMPONENT_HTML_DOCUMENTATION_INSTALL_TYPES Full)
    92 
    93   SET(CPACK_GENERATOR "NSIS")
    94   SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico")
    95   SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/cmake/nsis/uninstall.ico")
    96   #SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
    97   SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\lemon.ico")
    98   SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
    99   SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lemon.cs.elte.hu")
   100   SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lemon.cs.elte.hu")
   101   SET(CPACK_NSIS_CONTACT "lemon-user@lemon.cs.elte.hu")
   102   SET(CPACK_NSIS_CREATE_ICONS_EXTRA "
   103     CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Documentation.lnk\\\" \\\"$INSTDIR\\\\share\\\\doc\\\\index.html\\\"
   104     ")
   105   SET(CPACK_NSIS_DELETE_ICONS_EXTRA "
   106     !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
   107     Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\Documentation.lnk\\\"
   108     ")
   109 
   110   INCLUDE(CPack)
   111 ENDIF(WIN32)