Skip to content
Snippets Groups Projects
  1. Jul 01, 2015
  2. Jun 30, 2015
    • Steffen Müthing's avatar
      [CMake][Release] Fix dune_enable_all_packages()-related problems · b3d8b8f8
      Steffen Müthing authored
      
      This branch fixes a number of problems related to
      dune_enable_all_packages():
      
      - The feature requires at least CMake 2.8.12, which is more recent than
        the baseline requirement of the core modules (2.8.12). We now check
        for that when executing the relevant functions and also remind the
        user to set the correct version in cmake_minimum_required().
      - Updated the documentation to also state the version requirement.
      - The duneproject script now also warns the user about the more
        stringent CMake version requirements when using the feature and sets
        the correct minimum required CMake version in the new module's main
        CMakeLists.txt file.
      - There was a bug in duneproject that caused it to always enable
        dune_enable_all_packages(), ignoring the choice made by the user. That
        bug is fixed in this branch.
      - Some minor fixes to duneproject while I was at it.
      
      This fixes FS1678.
      
      * feature/FS1678:
        [dunecontrol] Output choice of external package handling and required CMake version
        [duneproject] Allow specifying ENABLE_ALL as 5th command line argument
        [duneproject] Update CMake minimum version if ENABLE_ALL is true
        [duneproject][Bugfix] Make sure dune_enable_all_packages() can actually be disabled
        [CMake] Improve documentation in DuneEnableAllPackages.cmake
        [CMake][Doc] Add required CMake version to dune_enable_all_packages()
        [CMake] Require CMake 2.8.12 for dune_enable_all_packages()
        [CMake] Fix typo in warning message.
        Add a warning that some functions are 2.8.12
      
      (cherry picked from commit 90411efd)
      Signed-off-by: default avatarSteffen Müthing <muething@dune-project.org>
      b3d8b8f8
  3. Jun 25, 2015
  4. Jun 16, 2015
  5. May 21, 2015
  6. May 20, 2015
  7. May 19, 2015
  8. May 11, 2015
  9. Apr 27, 2015
  10. Apr 21, 2015
  11. Apr 20, 2015
  12. Apr 16, 2015
  13. Apr 15, 2015
  14. Apr 14, 2015
  15. Apr 08, 2015
    • Steffen Müthing's avatar
      Revert "[CMake][ParMETIS] Fix some typos in dune_register_package_flags() call" · f7a1381d
      Steffen Müthing authored
      This reverts commit 5f053401.
      
      I was a little hasty in cherry-picking this from the dune_enable_all_packages()
      branch, as it needs some infrastructure from over there.
      f7a1381d
    • 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 · d2beddfc
      Steffen Müthing authored
      CMake exports the major and minor components of the module version, but
      not the revision. This patch fixes that omission.
      d2beddfc
    • 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
Loading