如何强制CMake在Android NDK项目中使用响应文件?

时间:2018-12-12 15:41:11

标签: android cmake android-ndk

我有一个具有NDK组件的Android项目,该组件配置为使用CMake构建。根据项目目录在驱动器上的位置,我可能会得到“命令行太长”的信息。 CMake尝试构建此项目时发生错误。这是因为CMake会汇编巨大的命令行,列出项目中的所有.cpp文件。

我读到CMake具有一种称为“响应文件”的机制来解决此问题,但是我找不到在NDK项目中启用它们的方法。请问一些建议吗?

1 个答案:

答案 0 :(得分:2)

can specify response file CMakeLists.txt 中,或在 build.gradle 中添加

android { defaultConfig { ...
  externalNativeBuild {
      cmake {
          arguments 
              "-DCMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS=1",
              "-DCMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS=1" ,
              "-DCMAKE_C_RESPONSE_FILE_LINK_FLAG=@",
              "-DCMAKE_CXX_RESPONSE_FILE_LINK_FLAG=@",
              "-DCMAKE_NINJA_FORCE_RESPONSE_FILE=1"
      }
  }
}}