[CMake] Fwd: GLOB_RECURSE

J. Caleb Wherry calebwherry at gmail.com
Wed Jul 25 22:48:16 EDT 2018


Latest CMake documentation can be found here:

https://cmake.org/cmake/help/latest/

Searching for GLOB_RECURSE there leads to this page:

https://cmake.org/cmake/help/latest/command/file.html

Which is the command you are using. Docs for the command and option you are
using are here:

https://cmake.org/cmake/help/latest/command/file.html?highlight=glob_recurse#glob-recurse

As for your issue, you are misunderstanding the purpose of RELATIVE. That
means the paths you get path will be relative to that path, not that it
searches from that path. So you are just searching for “*.cpp” and “*.c” in
the CURRENT directory. That is why you are getting files in all the
subdirs. As @frodak pointed out in his first example, you need to remove
the RELATIVE and put the dir name you want like “./dir/*.cpp”.

Once you do that, you should be good to go. All of the above is explained
pretty clearly in the linked docs.

-Caleb

On Wed, Jul 25, 2018 at 9:57 PM Michael Hennebry <
michael.hennebry at rivieranexus.com> wrote:

> ---------- Forwarded message ----------
> From: Michael Hennebry <michael.hennebry at rivieranexus.com>
> Date: Wed, Jul 25, 2018 at 8:55 PM
> Subject: Re: [CMake] GLOB_RECURSE
> To: Andrew Bell <andrew.bell.ia at gmail.com>
>
>
> I'd thought I was clear.
> I want two lists of files, one from each of two directory trees.
> Maybe GLOB_RECURSE does not do that.
> If not, I can live without.
>
> What does it do?
>
> Maybe you have used cmake long enough for the answer to be obvious.
> I have to read documentation or ask people.
> The former has not been all that helpful.
>
> What I have been getting is what appears to be the same list twice.
> It includes files from three directory trees.
>
> On Wed, Jul 25, 2018 at 8:19 PM, Andrew Bell <andrew.bell.ia at gmail.com>
> wrote:
> > Michael,
> >
> > It's not clear what you're asking. You need to say what you're trying to
> > achieve, your expected result, and the result that you believe incorrect.
> >
> > On Wed, Jul 25, 2018, 9:02 PM Michael Hennebry
> > <michael.hennebry at rivieranexus.com> wrote:
> >>
> >> frodak wrote:
> >> I think you want to try for absolute paths:
> >> file (GLOB_RECURSE ards ./ArduinoCore/src/*.cpp ./ArduinoCore/src/*.c)
> >> file (GLOB_RECURSE apps ./SensorUnit/*.cpp ./SensorUnit/*.c)
> >>
> >> relative paths from those directories:
> >> file (GLOB_RECURSE ards RELATIVE  ./ArduinoCore/src/
> >> ./ArduinoCore/src/*.cpp ./ArduinoCore/src/*.c)
> >> file (GLOB_RECURSE apps RELATIVE ./SensorUnit/ ./SensorUnit/*.cpp
> >> ./SensorUnit/*.c)
> >> :frodak
> >>
> >> I do not understand either your constructions or mine.
> >> I do not know how cmake interprets any of them,
> >> nor how anyone would know.
> >> What documentation I can find, cmake.org, has not been helpful..
> >>
> >> Mike
> >>
> >>
> >> On Wed, Jul 25, 2018 at 7:02 PM, frodak <frodak17 at gmail.com> wrote:
> >> > I think you want to try for absolute paths:
> >> > file (GLOB_RECURSE ards ./ArduinoCore/src/*.cpp ./ArduinoCore/src/*.c)
> >> > file (GLOB_RECURSE apps ./SensorUnit/*.cpp ./SensorUnit/*.c)
> >> >
> >> > relative paths from those directories:
> >> > file (GLOB_RECURSE ards RELATIVE  ./ArduinoCore/src/
> >> > ./ArduinoCore/src/*.cpp
> >> > ./ArduinoCore/src/*.c)
> >> > file (GLOB_RECURSE apps RELATIVE ./SensorUnit/ ./SensorUnit/*.cpp
> >> > ./SensorUnit/*.c)
> >> >
> >> >
> >> >
> >> > On Wed, Jul 25, 2018 at 6:47 PM, Michael Hennebry
> >> > <michael.hennebry at rivieranexus.com> wrote:
> >> >>
> >> >> Emphasis on curse.
> >> >>
> >> >> from CMakeLists.txt:
> >> >>
> >> >> file (GLOB_RECURSE ards ./ArduinoCore/src *.cpp *.c)
> >> >> file (GLOB_RECURSE apps ./SensorUnit *.cpp *.c)
> >> >>
> >> >> message("apps:;${apps};:apps")
> >> >> message("ards:;${ards};:ards")
> >> >>
> >> >> Both lists have ArduinoCore and SensorUnit sources.
> >> >> They both have precisely 57 entries.
> >> >> They both have three entries from sb-build.
> >> >>
> >> >> What is going on?
> >> >>
> >> >> From the siblings' parent:
> >> >> $ ls -F
> >> >> ArduinoCore/    SensorUnit/              generic-gcc-avr.cmake
> >> >> CMakeLists.txt  from-build-directory.sh  sb-build/
> >> >>
> >> >> I tried RELATIVE.
> >> >> I tried replacing the dot with ${CMAKE_SOURCE_DIR}.
> >> >> All to no avail.
> >> >>
> >> >> I'm stumped.
> >> >> --
> >> >>
> >> >> Powered by www.kitware.com
> >> >>
> >> >> Please keep messages on-topic and check the CMake FAQ at:
> >> >> http://www.cmake.org/Wiki/CMake_FAQ
> >> >>
> >> >> Kitware offers various services to support the CMake community. For
> >> >> more
> >> >> information on each offering, please visit:
> >> >>
> >> >> CMake Support: http://cmake.org/cmake/help/support.html
> >> >> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> >> >> CMake Training Courses: http://cmake.org/cmake/help/training.html
> >> >>
> >> >> Visit other Kitware open-source projects at
> >> >> http://www.kitware.com/opensource/opensource.html
> >> >>
> >> >> Follow this link to subscribe/unsubscribe:
> >> >> https://cmake.org/mailman/listinfo/cmake
> >> >
> >> >
> >> --
> >>
> >> Powered by www.kitware.com
> >>
> >> Please keep messages on-topic and check the CMake FAQ at:
> >> http://www.cmake.org/Wiki/CMake_FAQ
> >>
> >> Kitware offers various services to support the CMake community. For more
> >> information on each offering, please visit:
> >>
> >> CMake Support: http://cmake.org/cmake/help/support.html
> >> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> >> CMake Training Courses: http://cmake.org/cmake/help/training.html
> >>
> >> Visit other Kitware open-source projects at
> >> http://www.kitware.com/opensource/opensource.html
> >>
> >> Follow this link to subscribe/unsubscribe:
> >> https://cmake.org/mailman/listinfo/cmake
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake
>
-- 
Sent from my iPhone 4s
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180725/0b88dc82/attachment.html>


More information about the CMake mailing list