Loading java/java_test.go +14 −0 Original line number Diff line number Diff line Loading @@ -1247,6 +1247,20 @@ func TestJavaSdkLibrary_InvalidScopes(t *testing.T) { `) } func TestJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { testJava(t, ` java_sdk_library { name: "foo", srcs: ["a.java", "b.java"], api_packages: ["foo"], system: { enabled: true, sdk_version: "module_current", }, } `) } var compilerFlagsTestCases = []struct { in string out bool Loading java/sdk_library.go +21 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,22 @@ type ApiScopeProperties struct { // Otherwise, if this is not set for any scope then the default behavior is // scope specific so please refer to the scope specific property documentation. Enabled *bool // The sdk_version to use for building the stubs. // // If not specified then it will use an sdk_version determined as follows: // 1) If the sdk_version specified on the java_sdk_library is none then this // will be none. This is used for java_sdk_library instances that are used // to create stubs that contribute to the core_current sdk version. // 2) Otherwise, it is assumed that this library extends but does not contribute // directly to a specific sdk_version and so this uses the sdk_version appropriate // for the api scope. e.g. public will use sdk_version: current, system will use // sdk_version: system_current, etc. // // This does not affect the sdk_version used for either generating the stubs source // or the API file. They both have to use the same sdk_version as is used for // compiling the implementation library. Sdk_version *string } type sdkLibraryProperties struct { Loading Loading @@ -701,6 +717,11 @@ func (module *SdkLibrary) apiDistPath(apiScope *apiScope) string { // Get the sdk version for use when compiling the stubs library. func (module *SdkLibrary) sdkVersionForStubsLibrary(mctx android.EarlyModuleContext, apiScope *apiScope) string { scopeProperties := module.scopeToProperties[apiScope] if scopeProperties.Sdk_version != nil { return proptools.String(scopeProperties.Sdk_version) } sdkDep := decodeSdkDep(mctx, sdkContext(&module.Library)) if sdkDep.hasStandardLibs() { // If building against a standard sdk then use the sdk version appropriate for the scope. Loading sdk/java_sdk_test.go +63 −1 Original line number Diff line number Diff line Loading @@ -1134,7 +1134,69 @@ sdk_snapshot { ) } func TestSnapshotWithJavaSdkLibrary_ApiSurfaces(t *testing.T) { func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { result := testSdkWithJava(t, ` sdk { name: "mysdk", java_sdk_libs: ["myjavalib"], } java_sdk_library { name: "myjavalib", srcs: ["Test.java"], sdk_version: "module_current", public: { enabled: true, sdk_version: "module_current", }, } `) result.CheckSnapshot("mysdk", "", checkAndroidBpContents(` // This is auto-generated. DO NOT EDIT. java_sdk_library_import { name: "mysdk_myjavalib@current", sdk_member_name: "myjavalib", public: { jars: ["sdk_library/public/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], current_api: "sdk_library/public/myjavalib.txt", removed_api: "sdk_library/public/myjavalib-removed.txt", sdk_version: "module_current", }, } java_sdk_library_import { name: "myjavalib", prefer: false, public: { jars: ["sdk_library/public/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], current_api: "sdk_library/public/myjavalib.txt", removed_api: "sdk_library/public/myjavalib-removed.txt", sdk_version: "module_current", }, } sdk_snapshot { name: "mysdk@current", java_sdk_libs: ["mysdk_myjavalib@current"], } `), checkAllCopyRules(` .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt `), checkMergeZips( ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", ), ) } func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) { result := testSdkWithJava(t, ` sdk { name: "mysdk", Loading Loading
java/java_test.go +14 −0 Original line number Diff line number Diff line Loading @@ -1247,6 +1247,20 @@ func TestJavaSdkLibrary_InvalidScopes(t *testing.T) { `) } func TestJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { testJava(t, ` java_sdk_library { name: "foo", srcs: ["a.java", "b.java"], api_packages: ["foo"], system: { enabled: true, sdk_version: "module_current", }, } `) } var compilerFlagsTestCases = []struct { in string out bool Loading
java/sdk_library.go +21 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,22 @@ type ApiScopeProperties struct { // Otherwise, if this is not set for any scope then the default behavior is // scope specific so please refer to the scope specific property documentation. Enabled *bool // The sdk_version to use for building the stubs. // // If not specified then it will use an sdk_version determined as follows: // 1) If the sdk_version specified on the java_sdk_library is none then this // will be none. This is used for java_sdk_library instances that are used // to create stubs that contribute to the core_current sdk version. // 2) Otherwise, it is assumed that this library extends but does not contribute // directly to a specific sdk_version and so this uses the sdk_version appropriate // for the api scope. e.g. public will use sdk_version: current, system will use // sdk_version: system_current, etc. // // This does not affect the sdk_version used for either generating the stubs source // or the API file. They both have to use the same sdk_version as is used for // compiling the implementation library. Sdk_version *string } type sdkLibraryProperties struct { Loading Loading @@ -701,6 +717,11 @@ func (module *SdkLibrary) apiDistPath(apiScope *apiScope) string { // Get the sdk version for use when compiling the stubs library. func (module *SdkLibrary) sdkVersionForStubsLibrary(mctx android.EarlyModuleContext, apiScope *apiScope) string { scopeProperties := module.scopeToProperties[apiScope] if scopeProperties.Sdk_version != nil { return proptools.String(scopeProperties.Sdk_version) } sdkDep := decodeSdkDep(mctx, sdkContext(&module.Library)) if sdkDep.hasStandardLibs() { // If building against a standard sdk then use the sdk version appropriate for the scope. Loading
sdk/java_sdk_test.go +63 −1 Original line number Diff line number Diff line Loading @@ -1134,7 +1134,69 @@ sdk_snapshot { ) } func TestSnapshotWithJavaSdkLibrary_ApiSurfaces(t *testing.T) { func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { result := testSdkWithJava(t, ` sdk { name: "mysdk", java_sdk_libs: ["myjavalib"], } java_sdk_library { name: "myjavalib", srcs: ["Test.java"], sdk_version: "module_current", public: { enabled: true, sdk_version: "module_current", }, } `) result.CheckSnapshot("mysdk", "", checkAndroidBpContents(` // This is auto-generated. DO NOT EDIT. java_sdk_library_import { name: "mysdk_myjavalib@current", sdk_member_name: "myjavalib", public: { jars: ["sdk_library/public/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], current_api: "sdk_library/public/myjavalib.txt", removed_api: "sdk_library/public/myjavalib-removed.txt", sdk_version: "module_current", }, } java_sdk_library_import { name: "myjavalib", prefer: false, public: { jars: ["sdk_library/public/myjavalib-stubs.jar"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], current_api: "sdk_library/public/myjavalib.txt", removed_api: "sdk_library/public/myjavalib-removed.txt", sdk_version: "module_current", }, } sdk_snapshot { name: "mysdk@current", java_sdk_libs: ["mysdk_myjavalib@current"], } `), checkAllCopyRules(` .intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib.txt .intermediates/myjavalib.stubs.source/android_common/myjavalib.stubs.source_api.txt -> sdk_library/public/myjavalib-removed.txt `), checkMergeZips( ".intermediates/mysdk/common_os/tmp/sdk_library/public/myjavalib_stub_sources.zip", ), ) } func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) { result := testSdkWithJava(t, ` sdk { name: "mysdk", Loading