在构建 Android 应用程序时禁用 CMake 目标
Disabling a CMake target when building Android app
我有一个使用本机代码的Android应用程序C++该代码是使用CMake构建的。在项目的 CMakeList 中,使用 add_subdirectory()
添加一个库。这个库有很多目标,其中一些不能针对Android平台编译(它们在Android上产生编译错误(。但是,我的Android应用程序不会链接到任何这些目标,因此根本不需要构建它们。但Android Studio还是试图构建它们。
我的问题是是否可以以某种方式在Android Studio中禁用这些目标。我可以告诉 Android Studio 不要构建这些目标吗?
谷歌已经想到了这一点:你可以选择要构建的目标。下面的示例是链接的最小版本;它只构建libexample-one
:
android {
defaultConfig {
externalNativeBuild {
cmake {
// Note that Gradle packages only shared libraries into your APK.
targets "libexample-one"
}
}
}
}
或者,您可以破解库的 CMakeLists.txt以从自动构建中排除有问题的目标。
相关文章:
- 在 CMake 中为每个目标设置编译器/链接器标志
- 如何在 CMake 中对目标依赖项进行分组?
- 我应该如何在没有变量的情况下将相同的参数传递给 CMAKE 中的多个目标?
- 在对象库中包含 CMake 目标的标头
- 导出(安装)的 cmake 目标是否可分发?
- CMAKE 目标链接打开 SSL 错误
- 在构建 Android 应用程序时禁用 CMake 目标
- 安装了要来源的特征cmake目标点包括但不安装
- 是否可以在编译后创建 CMake 目标和文件目录?
- 执行CMAKE目标的输出作为另一个目标的依赖
- 如何使用于 catch2 测试和项目运行的 cmake 目标更具可扩展性和合理性?
- 链接到CMake目标会产生什么影响
- 如何在 CMake 目标上请求 C++11 或更高版本
- 在特定的CMAKE目标之前运行NPM命令
- 如何以编程方式循环访问所有 CMake 目标
- CMAKE:目标依赖项存在问题(add_dependency不起作用?
- 如何为主机应用程序和任何使用过的库使用单独的CMake目标
- 如何在另一个CMake目标中加载主应用程序的接口类
- 根据cmake目标启用宏
- 在cmake目标的解决方案资源管理器中添加一些源文件的头依赖项