android cmakelist 添加多源文件?

I'm*_*Man 4 cmake android-ndk

我使用 Android Studio 和 CMakelist 编写 NDK 项目。

但是当我想将大量 cpp/c 文件包含到 CMakelists.txt 时,我找不到一种简单的方法来温和地做到这一点。

我需要你的帮助。

这是我的代码的文件树示例:

Cmakelists.txt
src
|__main
     |__cpp
         |___a.cpp   // cpp file 
         |___a.h
         |___aa.c   //   c file
         |___...
         |___dirA    //  a dir
              |__b.c  // also has c file 
              |__b.h
              |__d.cpp  // and cpp file
              |__...
              |___dirB  // another dir
                   |__xxx.c
                   |__...
Run Code Online (Sandbox Code Playgroud)

在我的 Cmakelist 中,我使用了

file(GLOB cpp_srcs "src/main/cpp/*.cpp")

这似乎只包括第一目录层的 cpp 文件,不包括 c 文件,以及子目录的 cpp/c 文件

有什么办法可以做到吗?目录太深,我不想手动添加 cpp/c 文件。

Bun*_*gow 6

你可以试试:

file(GLOB_RECURSE cpp_srcs "src/main/cpp/*.c" "src/main/cpp/*.cpp")
Run Code Online (Sandbox Code Playgroud)

或者可能:

file(GLOB_RECURSE cpp_srcs_c "src/main/cpp/*.c")
file(GLOB_RECURSE cpp_srcs_cpp "src/main/cpp/*.cpp")
set(cpp_srcs ${cpp_srcs_c} ${cpp_srcs_cpp})
Run Code Online (Sandbox Code Playgroud)

我不确定第一个模式是否有效,现在无法测试,但第二个模式应该可以。