CMakeLists.txt
changeset 225 c5a40fc54f1a
parent 141 96f81c791f0c
child 236 da953e387d31
equal deleted inserted replaced
0:b08fe9ddfa47 1:64b3486f559f
     1 project (LEMON)
     1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
     2 enable_testing ()
     2 
     3 add_subdirectory (lemon)
     3 #EXECUTE_PROCESS(
     4 add_subdirectory (demo)
     4 #  COMMAND hg id -i
     5 add_subdirectory (test)
     5 #  OUTPUT_VARIABLE HG_REVISION
       
     6 #  OUTPUT_STRIP_TRAILING_WHITESPACE)
       
     7 
       
     8 SET(PROJECT_NAME "Lemon")
       
     9 SET(PROJECT_VERSION_MAJOR "0")
       
    10 SET(PROJECT_VERSION_MINOR "99")
       
    11 SET(PROJECT_VERSION_PATCH "0")
       
    12 SET(PROJECT_VERSION
       
    13   "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
       
    14 
       
    15 PROJECT(${PROJECT_NAME})
       
    16 
       
    17 SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
       
    18 
       
    19 INCLUDE(FindDoxygen)
       
    20 INCLUDE(FindGhostscript)
       
    21 
       
    22 ENABLE_TESTING()
       
    23 
       
    24 ADD_SUBDIRECTORY(lemon)
       
    25 ADD_SUBDIRECTORY(demo)
       
    26 ADD_SUBDIRECTORY(doc)
       
    27 ADD_SUBDIRECTORY(test)
       
    28 
       
    29 IF(WIN32)
       
    30   INSTALL(FILES ${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico
       
    31     DESTINATION bin)
       
    32 ENDIF(WIN32)
       
    33 
       
    34 IF(WIN32)
       
    35   SET(CPACK_PACKAGE_NAME ${PROJECT_NAME})
       
    36   SET(CPACK_PACKAGE_VENDOR
       
    37     "EGRES - Egervary Research Group on Combinatorial Optimization")
       
    38   SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY
       
    39     "Lemon - Library of Efficient Models and Optimization in Networks")
       
    40   SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
       
    41 
       
    42   SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
       
    43   SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
       
    44   SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
       
    45   SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
       
    46 
       
    47   SET(CPACK_PACKAGE_INSTALL_DIRECTORY
       
    48     "${PROJECT_NAME} ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
       
    49   SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
       
    50     "${PROJECT_NAME} ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
       
    51 
       
    52   # Variables to generate a component-based installer.
       
    53   #SET(CPACK_COMPONENTS_ALL headers library html_documentation)
       
    54 
       
    55   #SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers")
       
    56   #SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Static library")
       
    57   #SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation")
       
    58 
       
    59   #SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
       
    60   #  "C++ header files for use with the Lemon library")
       
    61   #SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION
       
    62   #  "Static library used to build programs with Lemon")
       
    63   #SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION
       
    64   #  "Doxygen generated documentation")
       
    65 
       
    66   #SET(CPACK_COMPONENT_HEADERS_DEPENDS library)
       
    67 
       
    68   #SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
       
    69   #SET(CPACK_COMPONENT_LIBRARY_GROUP "Development")
       
    70   #SET(CPACK_COMPONENT_HTML_DOCUMENTATION_GROUP "Documentation")
       
    71 
       
    72   #SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
       
    73   #  "Components needed to develop software using Lemon")
       
    74   #SET(CPACK_COMPONENT_GROUP_DOCUMENTATION_DESCRIPTION
       
    75   #  "Documentation of Lemon")
       
    76 
       
    77   #SET(CPACK_ALL_INSTALL_TYPES Full Developer)
       
    78 
       
    79   #SET(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Developer Full)
       
    80   #SET(CPACK_COMPONENT_LIBRARY_INSTALL_TYPES Developer Full)
       
    81   #SET(CPACK_COMPONENT_HTML_DOCUMENTATION_INSTALL_TYPES Full)
       
    82 
       
    83   SET(CPACK_GENERATOR "NSIS")
       
    84   SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico")
       
    85   SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/cmake/nsis/uninstall.ico")
       
    86   #SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis\\\\installer.bmp")
       
    87   SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\lemon.ico")
       
    88   SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
       
    89   SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\lemon.cs.elte.hu")
       
    90   SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\lemon.cs.elte.hu")
       
    91   SET(CPACK_NSIS_CONTACT "lemon-user@lemon.cs.elte.hu")
       
    92   SET(CPACK_NSIS_CREATE_ICONS_EXTRA "
       
    93     CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Documentation.lnk\\\" \\\"$INSTDIR\\\\doc\\\\index.html\\\"
       
    94     ")
       
    95   SET(CPACK_NSIS_DELETE_ICONS_EXTRA "
       
    96     !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
       
    97     Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\Documentation.lnk\\\"
       
    98     ")
       
    99 
       
   100   INCLUDE(CPack)
       
   101 ENDIF(WIN32)