Skip to content
Snippets Groups Projects
  1. Apr 15, 2015
  2. Apr 08, 2015
    • Steffen Müthing's avatar
      [CMake] Clean up dune_enable_all_packages() and fix library handling · 6bceb786
      Steffen Müthing authored
      dune_enable_all_packages() doesn't really work if a module contains
      libraries (it triggers CMP022 and CMP038). This patch works around that
      problem and also adds a number of convenience features to the overall
      mechanism. In particular:
      
      - dune_enable_all_packages() now accepts optional lists of additional
        include directories and compile definitions that will be applied to
        all targets in the module. There is a new option APPEND that controls
        the placement of those compiler arguments, analogous to
        dune_register_package_flags().
      
      - Libraries need special handling to work around the problem with the
        two CMake policies listed above. Those get triggered because libraries
        defined in the module ended up linking to themselves, and newer
        versions of CMake really don't like that. We can avoid this problem by
        exploiting the fact that the set of libraries contained in
        link_libraries is evaluated only once, at the point when a target is
        created. So we only have to make sure that libraries inside the module
        are created before they are added to link_libraries(). But we have to
        be careful to make sure that link_libraries() is called before the
        user creates any targets that depend on the module library.
        In order to minimize the risk of user error, I have integrated those
        two tasks (creating the library and adding it to link_libraries())
        into the dune_enable_all_packages() macro. So this macro now accepts a
        list of library names (as the multi argument MODULE_LIBRARIES). These
        are automatically created using dune_add_library() (placing them in
        lib/) in the order that they are listed and added to link_libraries()
        afterwards. Users MUST use this mechanism if they want the library to
        be linked automatically to programs in the module. On the other hand,
        you can still manually create libraries, but then you have to link to
        them manually (e.g. the Alberta libs in dune-grid).
      
      - There is a new macro dune_library_add_sources() that can be used to add
        source files to libraries created with the help of
        dune_enable_all_packages(). That macro can be called repeatedly and in
        any subdirectory of the source tree. Using this facility, I think we
        can mostly get rid of OBJECT libraries. :-)
      
      - CMake doesn't like to create a target without any source files, so the
        patch generates a small stub source for each library that contains two
        functions that are named after the library and return the version of
        the associated dune module.
      6bceb786
    • Steffen Müthing's avatar
    • Steffen Müthing's avatar
      [CMake] Export project revision as ProjectVersionRevision · edeb0008
      Steffen Müthing authored
      CMake exports the major and minor components of the module version, but
      not the revision. This patch fixes that omission.
      edeb0008
  3. Apr 01, 2015
    • Steffen Müthing's avatar
      Merge branch 'master' into feature/FS1557-add-all-flags-by-default · 3734f8d2
      Steffen Müthing authored
      * master:
        Allow enabling dune_symlink_to_source_tree from the opts file
        Fix dune_symlink_to_source_tree for cmake 3.1
      3734f8d2
    • Dominic Kempf's avatar
      Allow enabling dune_symlink_to_source_tree from the opts file · 0154ec05
      Dominic Kempf authored
      Patching the dune core modules just to have the advantages of
      symlinks to the source tree is a bad idea. The patch introduces
      a check for the variable DUNE_SYMLINK_TO_SOURCE_TREE instead, which
      enables the macro if set.
      0154ec05
    • Dominic Kempf's avatar
      Fix dune_symlink_to_source_tree for cmake 3.1 · 3824de87
      Dominic Kempf authored
      CMake 3.1 issued a lot of warnings because it tried to symlink:
      - git specific subdirs that are not present in the build tree
      - build directories that are a subdir of the source instead of a sibling
      
      The change
      - adds a symlink iff a CMakeLists file was found in the source dir.
      - excludes such build directory.
      3824de87
    • Steffen Müthing's avatar
      Merge branch 'master' into feature/FS1557-add-all-flags-by-default · 2c3c90f3
      Steffen Müthing authored
      * master: (82 commits)
        [Type] Fix documentation of DuneSymlinkOrCopy
        [CMake][CPack] Set some basic CPack wariables for tarballs.
        [CMake] Don't search for malloc.h, stdint.h and memory.
        [CMake] Don't output twice that we generate Doxyfile.in.
        [CMake] Doxygen ignores existens of doc/doxygen/html/index.html in src
        [duneproject] use CMake variable for install dir
        [duneproject] fix typos in README
        [duneproject] remove empty lines at beginning and end of generated files
        [Autotools] Install DuneSymlinkOrCopy.cmake
        [CMake] install DuneSymlinkOrCopy.cmake
        [Cmake][bugfix] Still do the header globbing
        [Cmake][bugfix] Fix error in making headercheck configurable
        [CMake] make the headercheck feature configurable
        [bugfix] fix typos in add_dune_library
        [cleanup] Replace or and not by || and !.
        [m4] fix mixup when using autools/cmake 2.4 + an installed 2.3
        [bugfix] inlcude header algorithm to pass headercheck
        [dunecontrol] check for left over la files
        [reservedvector] allow to construct a reserved vector from an initializer_list
        Document new option --current-dep on the man page
        ...
      2c3c90f3
  4. Mar 24, 2015
  5. Mar 22, 2015
  6. Mar 20, 2015
  7. Mar 18, 2015
  8. Mar 17, 2015
  9. Mar 16, 2015
  10. Mar 15, 2015
  11. Mar 14, 2015
    • Christian Engwer's avatar
      [m4] fix mixup when using autools/cmake 2.4 + an installed 2.3 · 826a38d3
      Christian Engwer authored
      Ich a module is not updated to cmake yet, we can have the situation, that the core modules
      are built using cmake, but used by autotools. When trying to detect a dune library, we either
      explicitly stated the /blablabla/libdunefoo.la file if the the dependency was built using autools,
      or used the '-ldunefoo -L/blablabla/' options. This failed with very subtle errors if dune was
      also installed globally, e.g. a 2.3 from your favorite distribution. We fix this now in the same
      way as we fixed it for autotools. If the module is local, we explicitly state the lib...
      either as .la or as .a.
      826a38d3
  12. Mar 13, 2015
  13. Mar 12, 2015
  14. Mar 11, 2015
  15. Mar 10, 2015
  16. Mar 07, 2015
  17. Mar 06, 2015
  18. Mar 05, 2015
Loading