diff options
-rw-r--r-- | cc/cc.go | 272 | ||||
-rw-r--r-- | common/arch.go | 84 | ||||
-rw-r--r-- | common/module.go | 4 | ||||
-rw-r--r-- | genrule/genrule.go | 34 | ||||
-rw-r--r-- | java/app.go | 46 | ||||
-rw-r--r-- | java/java.go | 106 |
6 files changed, 298 insertions, 248 deletions
@@ -151,124 +151,125 @@ type CCFlags struct { Clang bool } -// CCBase contains the properties and members used by all C/C++ module types, and implements -// the blueprint.Module interface. It expects to be embedded into an outer specialization struct, -// and uses a ccModuleType interface to that struct to create the build steps. -type CCBase struct { - common.AndroidModuleBase - module CCModuleType +// Properties used to compile all C or C++ modules +type CCBaseProperties struct { + // list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. + Srcs []string `android:"arch_variant,arch_subtract"` - // Properties used to compile all C or C++ modules - Properties struct { - // srcs: list of source files used to compile the C/C++ module. May be .c, .cpp, or .S files. - Srcs []string `android:"arch_variant,arch_subtract"` + // list of module-specific flags that will be used for C and C++ compiles. + Cflags []string `android:"arch_variant"` - // cflags: list of module-specific flags that will be used for C and C++ compiles. - Cflags []string `android:"arch_variant"` + // list of module-specific flags that will be used for C++ compiles + Cppflags []string `android:"arch_variant"` - // cppflags: list of module-specific flags that will be used for C++ compiles - Cppflags []string `android:"arch_variant"` + // list of module-specific flags that will be used for C compiles + Conlyflags []string `android:"arch_variant"` - // conlyflags: list of module-specific flags that will be used for C compiles - Conlyflags []string `android:"arch_variant"` + // list of module-specific flags that will be used for .S compiles + Asflags []string `android:"arch_variant"` - // asflags: list of module-specific flags that will be used for .S compiles - Asflags []string `android:"arch_variant"` + // list of module-specific flags that will be used for .y and .yy compiles + Yaccflags []string - // yaccflags: list of module-specific flags that will be used for .y and .yy compiles - Yaccflags []string + // list of module-specific flags that will be used for all link steps + Ldflags []string `android:"arch_variant"` - // ldflags: list of module-specific flags that will be used for all link steps - Ldflags []string `android:"arch_variant"` + // the instruction set architecture to use to compile the C/C++ + // module. + Instruction_set string `android:"arch_variant"` - // instruction_set: the instruction set architecture to use to compile the C/C++ - // module. - Instruction_set string `android:"arch_variant"` + // list of directories relative to the root of the source tree that will + // be added to the include path using -I. + // If possible, don't use this. If adding paths from the current directory use + // local_include_dirs, if adding paths from other modules use export_include_dirs in + // that module. + Include_dirs []string `android:"arch_variant"` - // include_dirs: list of directories relative to the root of the source tree that will - // be added to the include path using -I. - // If possible, don't use this. If adding paths from the current directory use - // local_include_dirs, if adding paths from other modules use export_include_dirs in - // that module. - Include_dirs []string `android:"arch_variant"` + // list of directories relative to the Blueprints file that will + // be added to the include path using -I + Local_include_dirs []string `android:"arch_variant"` - // local_include_dirs: list of directories relative to the Blueprints file that will - // be added to the include path using -I - Local_include_dirs []string `android:"arch_variant"` + // list of directories relative to the Blueprints file that will + // be added to the include path using -I for any module that links against this module + Export_include_dirs []string `android:"arch_variant"` - // export_include_dirs: list of directories relative to the Blueprints file that will - // be added to the include path using -I for any module that links against this module - Export_include_dirs []string `android:"arch_variant"` + // list of module-specific flags that will be used for C and C++ compiles when + // compiling with clang + Clang_cflags []string `android:"arch_variant"` - // clang_cflags: list of module-specific flags that will be used for C and C++ compiles when - // compiling with clang - Clang_cflags []string `android:"arch_variant"` + // list of module-specific flags that will be used for .S compiles when + // compiling with clang + Clang_asflags []string `android:"arch_variant"` - // clang_asflags: list of module-specific flags that will be used for .S compiles when - // compiling with clang - Clang_asflags []string `android:"arch_variant"` + // list of system libraries that will be dynamically linked to + // shared library and executable modules. If unset, generally defaults to libc + // and libm. Set to [] to prevent linking against libc and libm. + System_shared_libs []string - // system_shared_libs: list of system libraries that will be dynamically linked to - // shared library and executable modules. If unset, generally defaults to libc - // and libm. Set to [] to prevent linking against libc and libm. - System_shared_libs []string + // list of modules whose object files should be linked into this module + // in their entirety. For static library modules, all of the .o files from the intermediate + // directory of the dependency will be linked into this modules .a file. For a shared library, + // the dependency's .a file will be linked into this module using -Wl,--whole-archive. + Whole_static_libs []string `android:"arch_variant"` - // whole_static_libs: list of modules whose object files should be linked into this module - // in their entirety. For static library modules, all of the .o files from the intermediate - // directory of the dependency will be linked into this modules .a file. For a shared library, - // the dependency's .a file will be linked into this module using -Wl,--whole-archive. - Whole_static_libs []string `android:"arch_variant"` + // list of modules that should be statically linked into this module. + Static_libs []string `android:"arch_variant"` - // static_libs: list of modules that should be statically linked into this module. - Static_libs []string `android:"arch_variant"` + // list of modules that should be dynamically linked into this module. + Shared_libs []string `android:"arch_variant"` - // shared_libs: list of modules that should be dynamically linked into this module. - Shared_libs []string `android:"arch_variant"` + // allow the module to contain undefined symbols. By default, + // modules cannot contain undefined symbols that are not satisified by their immediate + // dependencies. Set this flag to true to remove --no-undefined from the linker flags. + // This flag should only be necessary for compiling low-level libraries like libc. + Allow_undefined_symbols bool - // allow_undefined_symbols: allow the module to contain undefined symbols. By default, - // modules cannot contain undefined symbols that are not satisified by their immediate - // dependencies. Set this flag to true to remove --no-undefined from the linker flags. - // This flag should only be necessary for compiling low-level libraries like libc. - Allow_undefined_symbols bool + // don't link in crt_begin and crt_end. This flag should only be necessary for + // compiling crt or libc. + Nocrt bool `android:"arch_variant"` - // nocrt: don't link in crt_begin and crt_end. This flag should only be necessary for - // compiling crt or libc. - Nocrt bool `android:"arch_variant"` + // don't insert default compiler flags into asflags, cflags, + // cppflags, conlyflags, ldflags, or include_dirs + No_default_compiler_flags bool - // no_default_compiler_flags: don't insert default compiler flags into asflags, cflags, - // cppflags, conlyflags, ldflags, or include_dirs - No_default_compiler_flags bool + // compile module with clang instead of gcc + Clang bool `android:"arch_variant"` - // clang: compile module with clang instead of gcc - Clang bool `android:"arch_variant"` + // pass -frtti instead of -fno-rtti + Rtti bool - // rtti: pass -frtti instead of -fno-rtti - Rtti bool + // -l arguments to pass to linker for host-provided shared libraries + Host_ldlibs []string `android:"arch_variant"` - // host_ldlibs: -l arguments to pass to linker for host-provided shared libraries - Host_ldlibs []string `android:"arch_variant"` + // select the STL library to use. Possible values are "libc++", "libc++_static", + // "stlport", "stlport_static", "ndk", "libstdc++", or "none". Leave blank to select the + // default + Stl string - // stl: select the STL library to use. Possible values are "libc++", "libc++_static", - // "stlport", "stlport_static", "ndk", "libstdc++", or "none". Leave blank to select the - // default - Stl string + // Set for combined shared/static libraries to prevent compiling object files a second time + SkipCompileObjs bool `blueprint:"mutated"` + + Debug, Release struct { + // list of module-specific flags that will be used for C and C++ compiles in debug or + // release builds + Cflags []string `android:"arch_variant"` + } `android:"arch_variant"` - // Set for combined shared/static libraries to prevent compiling object files a second time - SkipCompileObjs bool `blueprint:"mutated"` + // Minimum sdk version supported when compiling against the ndk + Sdk_version string - Debug struct { - Cflags []string `android:"arch_variant"` - } `android:"arch_variant"` - Release struct { - Cflags []string `android:"arch_variant"` - } `android:"arch_variant"` + // install to a subdirectory of the default install path for the module + Relative_install_path string +} - // Minimum sdk version supported when compiling against the ndk - Sdk_version string +// CCBase contains the properties and members used by all C/C++ module types, and implements +// the blueprint.Module interface. It expects to be embedded into an outer specialization struct, +// and uses a ccModuleType interface to that struct to create the build steps. +type CCBase struct { + common.AndroidModuleBase + module CCModuleType - // relative_install_path: install to a subdirectory of the default install path for the module - Relative_install_path string - } + Properties CCBaseProperties unused struct { Asan bool @@ -676,15 +677,16 @@ func (c *CCBase) depsToPaths(ctx common.AndroidModuleContext, depNames CCDeps) C return depPaths } +type ccLinkedProperties struct { + VariantIsShared bool `blueprint:"mutated"` + VariantIsStatic bool `blueprint:"mutated"` + VariantIsStaticBinary bool `blueprint:"mutated"` +} + // CCLinked contains the properties and members used by libraries and executables type CCLinked struct { CCBase - - dynamicProperties struct { - VariantIsShared bool `blueprint:"mutated"` - VariantIsStatic bool `blueprint:"mutated"` - VariantIsStaticBinary bool `blueprint:"mutated"` - } + dynamicProperties ccLinkedProperties } func newCCDynamic(dynamic *CCLinked, module CCModuleType, hod common.HostOrDeviceSupported, @@ -922,6 +924,25 @@ type ccExportedFlagsProducer interface { // Combined static+shared libraries // +type CCLibraryProperties struct { + BuildStatic bool `blueprint:"mutated"` + BuildShared bool `blueprint:"mutated"` + Static struct { + Srcs []string `android:"arch_variant"` + Cflags []string `android:"arch_variant"` + Whole_static_libs []string `android:"arch_variant"` + Static_libs []string `android:"arch_variant"` + Shared_libs []string `android:"arch_variant"` + } `android:"arch_variant"` + Shared struct { + Srcs []string `android:"arch_variant"` + Cflags []string `android:"arch_variant"` + Whole_static_libs []string `android:"arch_variant"` + Static_libs []string `android:"arch_variant"` + Shared_libs []string `android:"arch_variant"` + } `android:"arch_variant"` +} + type CCLibrary struct { CCLinked @@ -931,24 +952,7 @@ type CCLibrary struct { exportFlags []string out string - LibraryProperties struct { - BuildStatic bool `blueprint:"mutated"` - BuildShared bool `blueprint:"mutated"` - Static struct { - Srcs []string `android:"arch_variant"` - Cflags []string `android:"arch_variant"` - Whole_static_libs []string `android:"arch_variant"` - Static_libs []string `android:"arch_variant"` - Shared_libs []string `android:"arch_variant"` - } `android:"arch_variant"` - Shared struct { - Srcs []string `android:"arch_variant"` - Cflags []string `android:"arch_variant"` - Whole_static_libs []string `android:"arch_variant"` - Static_libs []string `android:"arch_variant"` - Shared_libs []string `android:"arch_variant"` - } `android:"arch_variant"` - } + LibraryProperties CCLibraryProperties } func (c *CCLibrary) buildStatic() bool { @@ -1233,23 +1237,25 @@ var _ ccObjectProvider = (*ccObject)(nil) // Executables // +type CCBinaryProperties struct { + // compile executable with -static + Static_executable bool + + // set the name of the output + Stem string `android:"arch_variant"` + + // append to the name of the output + Suffix string `android:"arch_variant"` + + // if set, add an extra objcopy --prefix-symbols= step + Prefix_symbols string +} + type CCBinary struct { CCLinked out string installFile string - BinaryProperties struct { - // static_executable: compile executable with -static - Static_executable bool - - // stem: set the name of the output - Stem string `android:"arch_variant"` - - // suffix: append to the name of the output - Suffix string `android:"arch_variant"` - - // prefix_symbols: if set, add an extra objcopy --prefix-symbols= step - Prefix_symbols string - } + BinaryProperties CCBinaryProperties } func (c *CCBinary) buildStatic() bool { @@ -1402,14 +1408,16 @@ func (c *CCBinary) HostToolPath() string { return "" } +type CCTestProperties struct { + // Create a separate test for each source file. Useful when there is + // global state that can not be torn down and reset between each test suite. + Test_per_src bool +} + type CCTest struct { CCBinary - TestProperties struct { - // test_per_src: Create a separate test for each source file. Useful when there is - // global state that can not be torn down and reset between each test suite. - Test_per_src bool - } + TestProperties CCTestProperties } func (c *CCTest) flags(ctx common.AndroidModuleContext, flags CCFlags) CCFlags { diff --git a/common/arch.go b/common/arch.go index 4ea0f268..ba1f6712 100644 --- a/common/arch.go +++ b/common/arch.go @@ -92,38 +92,68 @@ module { }, } */ + type archProperties struct { + // Properties to vary by target architecture Arch struct { - Arm interface{} - Arm64 interface{} - Mips interface{} - Mips64 interface{} - X86 interface{} - X86_64 interface{} - } + // Properties for module variants being built to run on arm (host or device) + Arm interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on arm64 (host or device) + Arm64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on mips (host or device) + Mips interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on mips64 (host or device) + Mips64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on x86 (host or device) + X86 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on x86_64 (host or device) + X86_64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + } + // Properties to vary by 32-bit or 64-bit Multilib struct { - Lib32 interface{} - Lib64 interface{} + // Properties for module variants being built to run on 32-bit devices + Lib32 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on 64-bit devices + Lib64 interface{} `blueprint:"filter(android:\"arch_variant\")"` } + // Properties to vary by build target (host or device, os, os+archictecture) Target struct { - Host interface{} - Android interface{} - Android_arm interface{} - Android_arm64 interface{} - Android_mips interface{} - Android_mips64 interface{} - Android_x86 interface{} - Android_x86_64 interface{} - Android64 interface{} - Android32 interface{} - Linux interface{} - Linux_x86 interface{} - Linux_x86_64 interface{} - Darwin interface{} - Darwin_x86 interface{} - Darwin_x86_64 interface{} - Windows interface{} - Not_windows interface{} + // Properties for module variants being built to run on the host + Host interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on the device + Android interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on arm devices + Android_arm interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on arm64 devices + Android_arm64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on mips devices + Android_mips interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on mips64 devices + Android_mips64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on x86 devices + Android_x86 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on x86_64 devices + Android_x86_64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on devices that support 64-bit + Android64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on devices that do not support 64-bit + Android32 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on linux hosts + Linux interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on linux x86 hosts + Linux_x86 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on linux x86_64 hosts + Linux_x86_64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on darwin hosts + Darwin interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on darwin x86 hosts + Darwin_x86 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on darwin x86_64 hosts + Darwin_x86_64 interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on windows hosts + Windows interface{} `blueprint:"filter(android:\"arch_variant\")"` + // Properties for module variants being built to run on linux or darwin hosts + Not_windows interface{} `blueprint:"filter(android:\"arch_variant\")"` } } diff --git a/common/module.go b/common/module.go index c39b55a1..77e02952 100644 --- a/common/module.go +++ b/common/module.go @@ -85,10 +85,10 @@ type commonProperties struct { Deps []string Tags []string - // disabled: don't emit any build rules for this module + // don't emit any build rules for this module Disabled bool `android:"arch_variant"` - // multilib: control whether this module compiles for 32-bit, 64-bit, or both. Possible values + // control whether this module compiles for 32-bit, 64-bit, or both. Possible values // are "32" (compile for 32-bit only), "64" (compile for 64-bit only), "both" (compile for both // architectures), or "first" (compile for 64-bit on a 64-bit platform, and 32-bit on a 32-bit // platform diff --git a/genrule/genrule.go b/genrule/genrule.go index ea30e3d1..b3938318 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -40,21 +40,23 @@ type HostToolProvider interface { HostToolPath() string } +type generatorProperties struct { + // command to run on one or more input files. Available variables for substitution: + // $in: one or more input files + // $out: a single output file + // $srcDir: the root directory of the source tree + // The host bin directory will be in the path + Cmd string + + // name of the module (if any) that produces the host executable. Leave empty for + // prebuilts or scripts that do not need a module to build them. + Tool string +} + type generator struct { common.AndroidModuleBase - properties struct { - // cmd: command to run on one or more input files. Available variables for substitution: - // $in: one or more input files - // $out: a single output file - // $srcDir: the root directory of the source tree - // The host bin directory will be in the path - Cmd string - - // tool: name of the module (if any) that produces the host executable. Leave empty for - // prebuilts or scripts that do not need a module to build them. - Tool string - } + properties generatorProperties tasks taskFunc @@ -146,10 +148,10 @@ func GenSrcsFactory() (blueprint.Module, []interface{}) { } type genSrcsProperties struct { - // srcs: list of input files + // list of input files Srcs []string - // output_extension: extension that will be substituted for each output file + // extension that will be substituted for each output file Output_extension string } @@ -169,9 +171,9 @@ func GenRuleFactory() (blueprint.Module, []interface{}) { } type genRuleProperties struct { - // srcs: list of input files + // list of input files Srcs []string - // out: name of the output file that will be generated + // name of the output file that will be generated Out string } diff --git a/java/app.go b/java/app.go index 5f153cf4..e6851b5c 100644 --- a/java/app.go +++ b/java/app.go @@ -31,35 +31,37 @@ import ( // AndroidManifest.xml merging // package splits -type AndroidApp struct { - javaBase +type androidAppProperties struct { + // path to a certificate, or the name of a certificate in the default + // certificate directory, or blank to use the default product certificate + Certificate string - appProperties struct { - // certificate: path to a certificate, or the name of a certificate in the default - // certificate directory, or blank to use the default product certificate - Certificate string + // paths to extra certificates to sign the apk with + Additional_certificates []string - // additional_certificates: paths to extra certificates to sign the apk with - Additional_certificates []string + // If set, create package-export.apk, which other packages can + // use to get PRODUCT-agnostic resource data like IDs and type definitions. + Export_package_resources bool - // export_package_resources: If set, create package-export.apk, which other packages can - // use to get PRODUCT-agnostic resource data like IDs and type definitions. - Export_package_resources bool + // flags passed to aapt when creating the apk + Aaptflags []string - // aaptflags: flags passed to aapt when creating the apk - Aaptflags []string + // list of resource labels to generate individual resource packages + Package_splits []string - // package_splits: list of resource labels to generate individual resource packages - Package_splits []string + // list of directories relative to the Blueprints file containing assets. + // Defaults to "assets" + Asset_dirs []string - // asset_dirs: list of directories relative to the Blueprints file containing assets. - // Defaults to "assets" - Asset_dirs []string + // list of directories relative to the Blueprints file containing + // Java resources + Android_resource_dirs []string +} - // android_resource_dirs: list of directories relative to the Blueprints file containing - // Java resources - Android_resource_dirs []string - } +type AndroidApp struct { + javaBase + + appProperties androidAppProperties aaptJavaFileList string exportPackage string diff --git a/java/java.go b/java/java.go index 9787d602..a16d1d67 100644 --- a/java/java.go +++ b/java/java.go @@ -44,59 +44,61 @@ import ( // DroidDoc // Findbugs -// javaBase contains the properties and members used by all java module types, and implements -// the blueprint.Module interface. -type javaBase struct { - common.AndroidModuleBase - module JavaModuleType +type javaBaseProperties struct { + // list of source files used to compile the Java module. May be .java, .logtags, .proto, + // or .aidl files. + Srcs []string `android:"arch_variant,arch_subtract"` - properties struct { - // srcs: list of source files used to compile the Java module. May be .java, .logtags, .proto, - // or .aidl files. - Srcs []string `android:"arch_variant,arch_subtract"` + // list of directories containing Java resources + Java_resource_dirs []string `android:"arch_variant"` - // java_resource_dirs: list of directories containing Java resources - Java_resource_dirs []string `android:"arch_variant"` + // don't build against the default libraries (core-libart, core-junit, + // ext, and framework for device targets) + No_standard_libraries bool - // no_standard_libraries: don't build against the default libraries (core-libart, core-junit, - // ext, and framework for device targets) - No_standard_libraries bool + // list of module-specific flags that will be used for javac compiles + Javacflags []string `android:"arch_variant"` - // javacflags: list of module-specific flags that will be used for javac compiles - Javacflags []string `android:"arch_variant"` + // list of module-specific flags that will be used for jack compiles + Jack_flags []string `android:"arch_variant"` - // jack_flags: list of module-specific flags that will be used for jack compiles - Jack_flags []string `android:"arch_variant"` + // list of module-specific flags that will be used for dex compiles + Dxflags []string `android:"arch_variant"` - // dxflags: list of module-specific flags that will be used for dex compiles - Dxflags []string `android:"arch_variant"` + // list of of java libraries that will be in the classpath + Java_libs []string `android:"arch_variant"` - // java_libs: list of of java libraries that will be in the classpath - Java_libs []string `android:"arch_variant"` + // list of java libraries that will be compiled into the resulting jar + Java_static_libs []string `android:"arch_variant"` - // java_static_libs: list of java libraries that will be compiled into the resulting jar - Java_static_libs []string `android:"arch_variant"` + // manifest file to be included in resulting jar + Manifest string - // manifest: manifest file to be included in resulting jar - Manifest string + // if not blank, set to the version of the sdk to compile against + Sdk_version string - // sdk_version: if not blank, set to the version of the sdk to compile against - Sdk_version string + // Set for device java libraries, and for host versions of device java libraries + // built for testing + Dex bool `blueprint:"mutated"` - // Set for device java libraries, and for host versions of device java libraries - // built for testing - Dex bool `blueprint:"mutated"` + // if not blank, run jarjar using the specified rules file + Jarjar_rules string - // jarjar_rules: if not blank, run jarjar using the specified rules file - Jarjar_rules string + // directories to pass to aidl tool + Aidl_includes []string - // aidl_includes: directories to pass to aidl tool - Aidl_includes []string + // directories that should be added as include directories + // for any aidl sources of modules that depend on this module + Export_aidl_include_dirs []string +} - // aidl_export_include_dirs: directories that should be added as include directories - // for any aidl sources of modules that depend on this module - Export_aidl_include_dirs []string - } +// javaBase contains the properties and members used by all java module types, and implements +// the blueprint.Module interface. +type javaBase struct { + common.AndroidModuleBase + module JavaModuleType + + properties javaBaseProperties // output file suitable for inserting into the classpath of another compile classpathFile string @@ -442,13 +444,15 @@ func JavaLibraryHostFactory() (blueprint.Module, []interface{}) { // Java Binaries (.jar file plus wrapper script) // +type javaBinaryProperties struct { + // installable script to execute the resulting jar + Wrapper string +} + type JavaBinary struct { JavaLibrary - binaryProperties struct { - // wrapper: installable script to execute the resulting jar - Wrapper string - } + binaryProperties javaBinaryProperties } func (j *JavaBinary) GenerateJavaBuildActions(ctx common.AndroidModuleContext) { @@ -478,12 +482,14 @@ func JavaBinaryHostFactory() (blueprint.Module, []interface{}) { // Java prebuilts // +type javaPrebuiltProperties struct { + Srcs []string +} + type JavaPrebuilt struct { common.AndroidModuleBase - properties struct { - Srcs []string - } + properties javaPrebuiltProperties classpathFile string classJarSpecs, resourceJarSpecs []jarSpec @@ -540,12 +546,14 @@ type sdkDependency interface { var _ sdkDependency = (*sdkPrebuilt)(nil) +type sdkPrebuiltProperties struct { + Aidl_preprocessed string +} + type sdkPrebuilt struct { JavaPrebuilt - sdkProperties struct { - Aidl_preprocessed string - } + sdkProperties sdkPrebuiltProperties aidlPreprocessed string } |