问题
How do I set up CMake to recursively scan a given directory and determine the list of source files?
My project is a shared library. I have a folder structure similar to this:
/
src/ # Source files in an arbitrary tree
include/ # Headers, tree mirrors that of the src/ folder
examples/ # Executable code examples that link against the library
CMakeLists.txt
I want CMake to recursively scan src
and include
and determine the list of source and header files in my project, regardless of the directory structure. I also want to avoid:
- Polluting the
src/
andinclude/
directories with endlessCMakeLists.txt
files - Having to change and adapt the scripts every time I change my folder structure
It is fine for each example to have their own build script, however.
回答1:
CMake provides the following command for recursive files globing:
file(GLOB_RECURSE variable [RELATIVE path]
[FOLLOW_SYMLINKS] [globbing expressions]...)
Command documentation: http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:file
来源:https://stackoverflow.com/questions/9745627/have-cmake-recursively-scan-folders