// Copyright 2018 Google Inc. All rights reserved. // // 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 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package java import ( "fmt" "path/filepath" "strings" "github.com/google/blueprint" "github.com/google/blueprint/proptools" "android/soong/android" "android/soong/java/config" "android/soong/remoteexec" ) func init() { RegisterDocsBuildComponents(android.InitRegistrationContext) RegisterStubsBuildComponents(android.InitRegistrationContext) // Register sdk member type. android.RegisterSdkMemberType(&droidStubsSdkMemberType{ SdkMemberTypeBase: android.SdkMemberTypeBase{ PropertyName: "stubs_sources", // stubs_sources can be used with sdk to provide the source stubs for APIs provided by // the APEX. SupportsSdk: true, }, }) } func RegisterDocsBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("doc_defaults", DocDefaultsFactory) ctx.RegisterModuleType("droiddoc", DroiddocFactory) ctx.RegisterModuleType("droiddoc_host", DroiddocHostFactory) ctx.RegisterModuleType("droiddoc_exported_dir", ExportedDroiddocDirFactory) ctx.RegisterModuleType("javadoc", JavadocFactory) ctx.RegisterModuleType("javadoc_host", JavadocHostFactory) } func RegisterStubsBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("stubs_defaults", StubsDefaultsFactory) ctx.RegisterModuleType("droidstubs", DroidstubsFactory) ctx.RegisterModuleType("droidstubs_host", DroidstubsHostFactory) ctx.RegisterModuleType("prebuilt_stubs_sources", PrebuiltStubsSourcesFactory) } var ( srcsLibTag = dependencyTag{name: "sources from javalib"} ) type JavadocProperties struct { // list of source files used to compile the Java module. May be .java, .logtags, .proto, // or .aidl files. Srcs []string `android:"path,arch_variant"` // list of source files that should not be used to build the Java module. // This is most useful in the arch/multilib variants to remove non-common files // filegroup or genrule can be included within this property. Exclude_srcs []string `android:"path,arch_variant"` // list of package names that should actually be used. If this property is left unspecified, // all the sources from the srcs property is used. Filter_packages []string // list of java libraries that will be in the classpath. Libs []string `android:"arch_variant"` // If set to false, don't allow this module(-docs.zip) to be exported. Defaults to true. Installable *bool // if not blank, set to the version of the sdk to compile against. // Defaults to compiling against the current platform. Sdk_version *string `android:"arch_variant"` // When targeting 1.9 and above, override the modules to use with --system, // otherwise provides defaults libraries to add to the bootclasspath. // Defaults to "none" System_modules *string Aidl struct { // Top level directories to pass to aidl tool Include_dirs []string // Directories rooted at the Android.bp file to pass to aidl tool Local_include_dirs []string } // If not blank, set the java version passed to javadoc as -source Java_version *string // local files that are used within user customized droiddoc options. Arg_files []string `android:"path"` // user customized droiddoc args. Deprecated, use flags instead. // Available variables for substitution: // // $(location