如何使用Android.bp生成RenderScript ScriptC*文件?

问题描述 投票:0回答:1

我想在 AOSP 上使用

.rs
文件编译我的渲染脚本项目。

我的 AOSP SDK 是 29 (Android Q)。

我的

mm
的构建目录是

├── Android.bp
├── AndroidManifest.xml
├── java
├── lib
├── lib64
├── libs
├── res
└── rs
    └── histEq.rs

我已关注如何使用 Android.mk 生成 RenderScript ScriptC* 文件?并尝试了相应的更改:

android_app {
    name: "MyAndroidApp",
    manifest: "AndroidManifest.xml",
    srcs: [
        "java/**/*.java",
        "rs/histEq.rs",
    ],

但是,我仍然遇到此构建错误。

<path to code>/utils/RenderScriptImageEdit.java:11: error: cannot find symbol
import <package name>.ScriptC_histEq;
                            ^
  symbol:   class ScriptC_histEq
  location: package <package name>
<path to code>/utils/RenderScriptImageEdit.java:43: error: cannot find symbol
        ScriptC_histEq histEqScript = new ScriptC_histEq(rs);
        ^
  symbol:   class ScriptC_histEq
  location: class RenderScriptImageEdit
<path to code>/utils/RenderScriptImageEdit.java:43: error: cannot find symbol
        ScriptC_histEq histEqScript = new ScriptC_histEq(rs);
                                          ^
  symbol:   class ScriptC_histEq
  location: class RenderScriptImageEdit

.rs
重命名为
.rscript
也不起作用。

如何使用

.rs
在 AOSP 29 上编译
Android.bp
文件?

android android-source android-10.0 android-soong
1个回答
1
投票

尝试这样https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/renderscript/Android.bp

似乎,他们正在使用自定义编译器命令进行构建,而不是直接将 rs 文件添加为 src:

// Copyright (C) 2011 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//

package {
    // See: http://go/android-license-faq
    default_applicable_licenses: ["Android-Apache-2.0"],
}

android_test {
    name: "CtsRenderscriptTestCases",
    defaults: ["cts_defaults"],
    // Include both the 32 and 64 bit versions
    compile_multilib: "both",
    static_libs: [
        "compatibility-device-util-axt",
        "ctstestrunner-axt",
        "xmp_toolkit",
    ],
    libs: ["android.test.base.stubs"],
    jni_libs: ["libcoremathtestcpp_jni"],
    srcs: [
        "src/**/*.java",
        ":CtsRenderscriptTestCases-rscript{CtsRenderscriptTestCases.srcjar}",
    ],
    resource_zips: [
        ":CtsRenderscriptTestCases-rscript{CtsRenderscriptTestCases.res.zip}",
    ],
    sdk_version: "current",
    // Tag this module as a cts test artifact
    test_suites: [
        "cts",
        "general-tests",
    ],
}

genrule {
    name: "CtsRenderscriptTestCases-rscript",
    srcs: [
        "src/**/*.rscript",
        "src/**/*.rsh",
        ":rs_script_api",
        ":rs_clang_headers",
    ],
    tools: [
        "llvm-rs-cc",
        "soong_zip",
    ],
    out: [
        "CtsRenderscriptTestCases.srcjar",
        "CtsRenderscriptTestCases.res.zip",
    ],
    cmd: "for f in $(locations src/**/*.rscript); do " +
        "  $(location llvm-rs-cc) -Wno-error=deprecated-declarations " +
        "  -o $(genDir)/res/raw -p $(genDir)/src " +
        "  -I $$(dirname $$(echo $(locations :rs_script_api) | awk '{ print $$1 }')) " +
        "  -I $$(dirname $$(echo $(locations :rs_clang_headers) | awk '{ print $$1 }')) $${f}; " +
        "done && " +
        "$(location soong_zip) -srcjar -o $(location CtsRenderscriptTestCases.srcjar) -C $(genDir)/src -D $(genDir)/src &&" +
        "$(location soong_zip) -o $(location CtsRenderscriptTestCases.res.zip) -C $(genDir)/res -D $(genDir)/res",
}
© www.soinside.com 2019 - 2024. All rights reserved.