// 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/proptools" "android/soong/android" "android/soong/java/config" ) func init() { android.RegisterModuleType("doc_defaults", DocDefaultsFactory) android.RegisterModuleType("stubs_defaults", StubsDefaultsFactory) android.RegisterModuleType("droiddoc", DroiddocFactory) android.RegisterModuleType("droiddoc_host", DroiddocHostFactory) android.RegisterModuleType("droiddoc_exported_dir", ExportedDroiddocDirFactory) android.RegisterModuleType("javadoc", JavadocFactory) android.RegisterModuleType("javadoc_host", JavadocHostFactory) android.RegisterModuleType("droidstubs", DroidstubsFactory) android.RegisterModuleType("droidstubs_host", DroidstubsHostFactory) android.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 directories rooted at the Android.bp file that will // be added to the search paths for finding source files when passing package names. Local_sourcepaths []string // 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. // Available variables for substitution: // // $(location