COIN-OR::LEMON - Graph Library

Changeset 225:c5a40fc54f1a in lemon-main


Ignore:
Timestamp:
07/18/08 17:36:58 (16 years ago)
Author:
Alpar Juttner <alpar@…>
Branch:
default
Phase:
public
Message:

CMake improvements.

  • documentation generation with Doxygen
  • installation support
Files:
4 added
5 edited

Legend:

Unmodified
Added
Removed
  • CMakeLists.txt

    r141 r225  
    1 project (LEMON)
    2 enable_testing ()
    3 add_subdirectory (lemon)
    4 add_subdirectory (demo)
    5 add_subdirectory (test)
     1CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
     2
     3#EXECUTE_PROCESS(
     4#  COMMAND hg id -i
     5#  OUTPUT_VARIABLE HG_REVISION
     6#  OUTPUT_STRIP_TRAILING_WHITESPACE)
     7
     8SET(PROJECT_NAME "Lemon")
     9SET(PROJECT_VERSION_MAJOR "0")
     10SET(PROJECT_VERSION_MINOR "99")
     11SET(PROJECT_VERSION_PATCH "0")
     12SET(PROJECT_VERSION
     13  "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
     14
     15PROJECT(${PROJECT_NAME})
     16
     17SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
     18
     19INCLUDE(FindDoxygen)
     20INCLUDE(FindGhostscript)
     21
     22ENABLE_TESTING()
     23
     24ADD_SUBDIRECTORY(lemon)
     25ADD_SUBDIRECTORY(demo)
     26ADD_SUBDIRECTORY(doc)
     27ADD_SUBDIRECTORY(test)
     28
     29IF(WIN32)
     30  INSTALL(FILES ${CMAKE_SOURCE_DIR}/cmake/nsis/lemon.ico
     31    DESTINATION bin)
     32ENDIF(WIN32)
     33
     34IF(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)
     101ENDIF(WIN32)
  • configure.ac

    r175 r225  
    77
    88AC_PREREQ([2.59])
    9 AC_INIT([LEMON], [lemon_version()], [lemon-devel@lemon.cs.elte.hu], [lemon])
     9AC_INIT([Lemon], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon])
    1010AC_CONFIG_AUX_DIR([build-aux])
    1111AC_CONFIG_MACRO_DIR([m4])
     
    2626AC_CHECK_PROG([gs_found],[gs],[yes],[no])
    2727
     28dnl Set custom compiler flags when using g++.
    2829if test x"$lx_cmdline_cxxflags_set" != x"set" -a "$GXX" = yes; then
    2930  CXXFLAGS="$CXXFLAGS -Wall -W -Wall -W -Wunused -Wformat=2 -Wctor-dtor-privacy -Wnon-virtual-dtor -Wno-char-subscripts -Wwrite-strings -Wno-char-subscripts -Wreturn-type -Wcast-qual -Wcast-align -Wsign-promo -Woverloaded-virtual -Woverloaded-virtual -ansi -fno-strict-aliasing -Wold-style-cast -Wno-unknown-pragmas"
     
    3536LX_CHECK_SOPLEX
    3637
    37 dnl Disable/enable building the demo programs
     38dnl Disable/enable building the demo programs.
    3839AC_ARG_ENABLE([demo],
    3940AS_HELP_STRING([--enable-demo], [build the demo programs])
     
    4849AM_CONDITIONAL([WANT_DEMO], [test x"$enable_demo" != x"no"])
    4950
    50 dnl Disable/enable building the binary tools
     51dnl Disable/enable building the binary tools.
    5152AC_ARG_ENABLE([tools],
    5253AS_HELP_STRING([--enable-tools], [build additional tools @<:@default@:>@])
     
    6162AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"])
    6263
    63 dnl Disable/enable building the benchmarks
     64dnl Disable/enable building the benchmarks.
    6465AC_ARG_ENABLE([benchmark],
    6566AS_HELP_STRING([--enable-benchmark], [build the benchmarks])
  • demo/CMakeLists.txt

    r141 r225  
    1 include_directories (${LEMON_SOURCE_DIR})
     1INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
    22
    3 link_directories (${LEMON_BINARY_DIR}/lemon)
     3LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lemon)
    44
    5 set (DEMOS
     5SET(DEMOS
    66  arg_parser_demo
    77  graph_to_eps_demo
    88  lgf_demo)
    99
    10 foreach (DEMO_NAME ${DEMOS})
    11   add_executable (${DEMO_NAME} ${DEMO_NAME}.cc)
    12   target_link_libraries (${DEMO_NAME} lemon)
    13   endforeach (DEMO_NAME)
     10FOREACH(DEMO_NAME ${DEMOS})
     11  ADD_EXECUTABLE(${DEMO_NAME} ${DEMO_NAME}.cc)
     12  TARGET_LINK_LIBRARIES(${DEMO_NAME} lemon)
     13ENDFOREACH(DEMO_NAME)
  • lemon/CMakeLists.txt

    r141 r225  
    1 include_directories (${LEMON_SOURCE_DIR})
    2 add_library (lemon arg_parser.cc base.cc color.cc random.cc)
     1INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
     2
     3ADD_LIBRARY(lemon
     4  arg_parser.cc
     5  base.cc
     6  color.cc
     7  random.cc)
     8
     9INSTALL(
     10  TARGETS lemon
     11  ARCHIVE DESTINATION lib
     12  COMPONENT library)
     13
     14INSTALL(
     15  DIRECTORY . bits concepts
     16  DESTINATION include/lemon
     17  COMPONENT headers
     18  FILES_MATCHING PATTERN "*.h")
  • test/CMakeLists.txt

    r203 r225  
    1 include_directories (${LEMON_SOURCE_DIR})
     1INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
    22
    3 link_directories (${LEMON_BINARY_DIR}/lemon)
     3LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lemon)
    44
    5 set (TESTS
     5SET(TESTS
    66  bfs_test
    77  counter_test
     
    1717  kruskal_test
    1818  maps_test
     19  random_test
    1920  path_test
    20   random_test
    2121  time_measure_test
    2222  unionfind_test)
    2323
    24 foreach (TEST_NAME ${TESTS})
    25   add_executable (${TEST_NAME} ${TEST_NAME}.cc)
    26   target_link_libraries (${TEST_NAME} lemon)
    27   add_test(${TEST_NAME} ${TEST_NAME})
    28 endforeach (TEST_NAME)
     24FOREACH(TEST_NAME ${TESTS})
     25  ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
     26  TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
     27  ADD_TEST(${TEST_NAME} ${TEST_NAME})
     28ENDFOREACH(TEST_NAME)
Note: See TracChangeset for help on using the changeset viewer.