diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,11 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -SET(PROJECT_NAME "LEMON") -SET(PROJECT_VERSION "hg-tip" CACHE STRING "The version string.") +IF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake) + INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake) +ELSE(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake) + SET(PROJECT_NAME "LEMON") + SET(PROJECT_VERSION "hg-tip" CACHE STRING "LEMON version string.") +ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake) PROJECT(${PROJECT_NAME}) @@ -27,14 +31,8 @@ ADD_SUBDIRECTORY(test) IF(WIN32) - INSTALL(FILES ${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico - DESTINATION bin) -ENDIF(WIN32) - -IF(WIN32) SET(CPACK_PACKAGE_NAME ${PROJECT_NAME}) - SET(CPACK_PACKAGE_VENDOR - "EGRES - Egervary Research Group on Combinatorial Optimization") + SET(CPACK_PACKAGE_VENDOR "EGRES") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LEMON - Library of Efficient Models and Optimization in Networks") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") @@ -46,36 +44,35 @@ SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${PROJECT_NAME} ${PROJECT_VERSION}") - # Variables to generate a component-based installer. - #SET(CPACK_COMPONENTS_ALL headers library html_documentation) + SET(CPACK_COMPONENTS_ALL headers library html_documentation) - #SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers") - #SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Static library") - #SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation") + SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ headers") + SET(CPACK_COMPONENT_LIBRARY_DISPLAY_NAME "Dynamic-link library") + SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DISPLAY_NAME "HTML documentation") - #SET(CPACK_COMPONENT_HEADERS_DESCRIPTION - # "C++ header files for use with the LEMON library") - #SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION - # "Static library used to build programs with LEMON") - #SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION - # "Doxygen generated documentation") + SET(CPACK_COMPONENT_HEADERS_DESCRIPTION + "C++ header files") + SET(CPACK_COMPONENT_LIBRARY_DESCRIPTION + "DLL and import library") + SET(CPACK_COMPONENT_HTML_DOCUMENTATION_DESCRIPTION + "Doxygen generated documentation") - #SET(CPACK_COMPONENT_HEADERS_DEPENDS library) + 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_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_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_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_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 "${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico") diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -10,7 +10,11 @@ m4/lx_check_glpk.m4 \ m4/lx_check_soplex.m4 \ CMakeLists.txt \ - cmake + cmake/FindGhostscript.cmake \ + cmake/version.cmake.in \ + cmake/version.cmake \ + cmake/nsis/lemon.ico \ + cmake/nsis/uninstall.ico pkgconfigdir = $(libdir)/pkgconfig lemondir = $(pkgincludedir) diff --git a/cmake/nsis/lemon.ico b/cmake/nsis/lemon.ico index ddecde5e6e280f4dda1eda8aa2014ae4a8c0df7b..bbfd8c143d940ed7afbafee3c8fe0aec27bd546b GIT binary patch literal 22486 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