[Dune-devel] [Dune-Commit] [Commit] dune-common - 3824de8: Fix dune_symlink_to_source_tree for cmake 3.1

Dominic Kempf dominic.r.kempf at gmail.com
Wed Apr 1 17:59:35 CEST 2015


Hey Markus,

it
1. determines a list of directories to place a symlink in by inspecting the
source tree for directories that contain a CMakeLists.txt file.
2. it checks whether that directory is located inside a build tree that is
a subdirectory of the build tree
3. It creates a symlink in all those directories.

I previously globbed for "*" instead of ".*CMakeLists.txt" to get a list of
directories, but that include the false positives mentioned in the commit
message.

Dominic

On Wed, Apr 1, 2015 at 5:48 PM, Markus Blatt <markus at dr-blatt.de> wrote:

> Hi Dominic,
>
> I must admit that I do not understand what the patch does. But it
> smells a bit fishy (maybe that is because I am not totally aware what
> the symlink stuff did before, though).
>
> Could you explain what the resulting code now does?
>
> More comments below:
>
> On Wed, Apr 01, 2015 at 03:22:47PM +0200, Dominic Kempf wrote:
> > New commit, appeared at Wed Apr  1 15:22:47 2015 +0200
> > as part of the following ref changes:
> >
> >     branch refs/heads/master    updated from 68e8bde -> 0154ec0
> >
> > Browsable version:
> http://cgit.dune-project.org/repositories/dune-common/commit/?id=3824de87c29973dbf4cc19e5f85fb37100a4fe65
> >
> > ======================================================================
> >
> > commit 3824de87c29973dbf4cc19e5f85fb37100a4fe65
> > Author: Dominic Kempf <dominic.r.kempf at gmail.com>
> > Date:   Wed Apr 1 15:12:42 2015 +0200
> >
> >     Fix dune_symlink_to_source_tree for cmake 3.1
> >
> >     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.
> >
> >  cmake/modules/DuneSymlinkOrCopy.cmake | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> >
> >
> >
> > diff --git a/cmake/modules/DuneSymlinkOrCopy.cmake
> b/cmake/modules/DuneSymlinkOrCopy.cmake
> > index 99595c8..fee4046 100644
> > --- a/cmake/modules/DuneSymlinkOrCopy.cmake
> > +++ b/cmake/modules/DuneSymlinkOrCopy.cmake
> > @@ -72,12 +72,14 @@ macro(dune_symlink_to_source_tree)
> >      endif()
> >    else()
> >      # get a list of all files in the current source directory and below.
> > -    file(GLOB_RECURSE files RELATIVE ${CMAKE_SOURCE_DIR} "*")
> > +    file(GLOB_RECURSE files RELATIVE ${CMAKE_SOURCE_DIR}
> ".*CMakeLists.txt")
>
> This is how this looks to me: Previously all file below
> ${CMAKE_SOURCE_DIR} were in the files variable. Now it is only the
> CMakeLists.txt. Does really make sense?
>
> >
> >      # iterate over all files, extract the directory name and write a
> symlink in the corresponding build directory
> > -    foreach(f ${files})
> > +    foreach(f ${files} "./")
> >        get_filename_component(dir ${f} DIRECTORY)
> > -      execute_process(COMMAND ${CMAKE_COMMAND} "-E" "create_symlink"
> "${CMAKE_SOURCE_DIR}/${dir}" "${CMAKE_BINARY_DIR}/${dir}/src_dir")
> > +      if(NOT dir MATCHES "${CMAKE_BINARY_DIR}/*")
> > +        execute_process(COMMAND ${CMAKE_COMMAND} "-E" "create_symlink"
> "${CMAKE_SOURCE_DIR}/${dir}" "${CMAKE_BINARY_DIR}/${dir}/src_dir")
> > +      endif(NOT dir MATCHES "${CMAKE_BINARY_DIR}/*")
>
> Ok, you skip the binary. That makes sense. But you now link the
> currect CMAKE_SOURCE_DIR and the CMakeLists.txt files below it.
>
> >      endforeach()
> >    endif()
> >  endmacro(dune_symlink_to_source_tree)
>
> BTW: Sorry for the noise if I am just to dense to get it.
>
> Markus
>
> --
> Do you need more support with DUNE or HPC in general?
>
> Dr. Markus Blatt - HPC-Simulation-Software & Services
> http://www.dr-blatt.de
> Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany
> Tel.: +49 (0) 160 97590858
>
> _______________________________________________
> Dune-devel mailing list
> Dune-devel at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20150401/55afa75f/attachment.htm>


More information about the Dune-devel mailing list