Gradle : 如何自动安装 CMake

Gradle : How to automatically install CMake

提问人:Vivek Mangal 提问时间:4/29/2022 最后编辑:genpfaultVivek Mangal 更新时间:10/11/2022 访问量:1221

问:

我正在开发一个 Android 原生项目,该项目使用 . 在我的 I 中指定:CMakebuild.gradle

if(project.hasProperty("native")) {
        externalNativeBuild {
            cmake {
                path file('jni/CMakeLists.txt')
                version '3.18.1+'
            }

        }
    }

我只想在自动构建服务器上从命令行调用任务。 但是,我收到此错误:externalNativeBuild

CMake '3.18.1' or higher was not found in SDK, PATH, or by cmake.dir property.

当我正常在内部构建它时,它会下载并安装,但它不是从命令行发生的。 有没有办法从命令行做到这一点?Android StudioCMake

android cmake android-ndk android-gradle-插件

评论

0赞 ΓDΛ 4/29/2022
CMakeLists.txt文件在什么包中?
0赞 Vivek Mangal 4/29/2022
CMakeLists.txt 位于 root-prject/app/jni 文件夹中。build.gradle 位于 root-prject/app 中
0赞 ΓDΛ 4/29/2022
路径文件('jni/CMakeLists,.txt')更改为路径文件('CMakeLists,.txt')。
0赞 Vivek Mangal 4/29/2022
尝试过但没有工作
0赞 genpfault 10/11/2022
仍然不确定如何从库存 Gradle 中做到这一点,但如果您愿意容忍第 3 方插件,com.quittle.setup-android-sdk 似乎可以工作。

答:

0赞 FuriousGeorge 5/5/2022 #1

Android Studio 将自动创建一个包含该属性的文件。local.propertiescmake.dir

在生成服务器上生成时,源很可能没有文件,因为该文件通常不会签入代码存储库。您需要创建此文件或修改环境变量以包含二进制文件。当然,这假定您在构建服务器上安装了 CMake。您可以使用 .zip/.tarball 手动执行此操作,或者如果您有权访问构建服务器上的 SDK,则可以使用构建工具进行安装 -> 如何在命令行上安装 Android SDK 构建工具?local.propertiesPATHcmake

评论

1赞 Vivek Mangal 5/14/2022
android gradle 插件不应该自动安装 cmake(developer.android.com/studio/projects/...)吗?
0赞 FuriousGeorge 5/16/2022
“如果他们的许可证已被提前接受”。这假设您使用的是插件 4.2.0+,您实际上已经接受了具有相应 sdkmanager 的服务器上的许可证,您的构建正在使用所述 sdkmanager,并且您的构建服务器可以访问 Internet,以便它可以自动将其拉入。
1赞 Vivek Mangal 5/16/2022
它会自动安装 NDK,而不是 cmake。我需要更改 cmake 的任何特定内容吗?
0赞 FuriousGeorge 5/18/2022
您是否接受了 CMake 的许可证?在紧要关头,您可以使用yes | ./sdkmanager --install "cmake;<your version>"
0赞 Vivek Mangal 5/18/2022
有没有办法在gradle文件中执行此操作,而不是在命令行中执行此操作