aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* add --uses-library option to manifest_fixer.pyJiyong Park2018-06-202-9/+163
| | | | | | | | | | | | | `--uses-library foo` adds <uses-library android:name="foo" android:required="true"/> element to the manifest. When there is already a uses-library element with the same name, then the hand-written element is respected. Test: m -j Test: build/soong/scripts/manifest_fixer_test.py Change-Id: Ia5e989d3c3c3fba7cc9015a6d16dac70464282a8
* Add a script to inject values into manifestsColin Cross2018-06-142-0/+342
| | | | | | | | | | | | | | | | | Add a script that can inject a <uses-sdk minSdkVersion=""> into AndroidManifest.xml files. This will help with merging LOCAL_STATIC_ANDROID_LIBRARIES, because ManifestMerger treats a missing minSdkVersion as minSdkVersion=1 and throws errors if libraries use a larger minSdkVersion. It will also help with cases where an app has a manifest that specifies an old minSdkVersion, but the build system is compiling the app in a way that is not compatibile with old devices, for example using a newer dex format. Bug: 110167203 Test: m java Test: build/soong/scripts/manifest_fixer_test.py Change-Id: I528d71a225feb86464c530e11b223babb0ea9edf
* Use llvm-{objcopy,strip} when clang lld is used.Chih-Hung Hsieh2018-06-071-13/+57
| | | | | | | | | | | | | | * Pass LLVM_{OBJCOPY,STRIP} to makefile rules. * strip.sh is used only in soong-only mode. It will use llvm-strip and and llvm-objcopy when --use-llvm-strip is given. Keep flags of strip.sh in alphabetic order. * Tested build/soong/scripts/build-ndk-prebuilts.sh by adding "UseClangLld": true, to soong.variables file. Bug: 80093681 Test: build/soong/scripts/build-ndk-prebuilts.sh Change-Id: I612267304eea434c7a33cc086b27b577d5f64094
* Fix mac sdk buildDan Willemsen2018-06-031-2/+2
| | | | | | | | Use the host platform "strip", and also expose "nm" and "otool" used for toc. Test: `m PRODUCT-sdk-sdk` on Mac Change-Id: I7a6d127f479d3e563385ead46bc3a4b49b99776b
* Flounder's been dead so long it smells.Elliott Hughes2018-05-101-1/+1
| | | | | | | | (And confuses people when it shows up in NDK build failures in 2018.) Bug: N/A Test: builds Change-Id: Ie055b17d1c4bd7c8b73f10adcc7f7b784f9e9c91
* Fix mini_debug_info stripping when no symbols should be kept.Ryan Prichard2018-03-291-0/+1
| | | | | | | | | | | | | | | If there are no symbols to keep (i.e. all function symbols are also in the dynsym table), then the "${outfile}.keep_symbols" file has size 0. When objcopy parses a --keep-symbols file, it has a special case for 0-sized files where it silently fails (exits with status 1, no error message). On the other hand, objcopy is happy with a file containing no symbols, as long as there is some whitespace or a comment. Avoid the special case by appending a newline to keep_symbols. Bug: b/62815515 Bug: b/77242617 Test: manual Change-Id: I90fd3258426176dc18aa5a8c19389c55fe6329c7
* Replace extract-srcjars.sh with zipsync toolColin Cross2018-03-151-44/+0
| | | | | | | | | | | | extract_srcjars.sh uses zipinfo and unzip, which fail with an error on an empty zip file. Instead of trying to hack around this (which is hard to make guarantees for since they are non-hermetic host tools), replace them with a go tool to unzip a set of zip files into a directory. Bug: 73885582 Test: m checkbuild Change-Id: I151fed347ed5196726e36866ffc27bc831799afb
* Use xz prebuiltDan Willemsen2018-03-091-1/+2
| | | | | | | | Instead of whichever xz happens to be on the PATH. Bug: 36130900 Test: prebuilts/build-tools/build-prebuilts.sh Change-Id: Ic9b66062ca7947f0eca9d839c0864da492d4ef71
* Add rsp and srcjar support to kotlinc build rulePrzemyslaw Szczepaniak2018-02-141-0/+60
| | | | | | | | | | | | | | | Rsp files are supported through helper script (gen-kotlin-build-file.sh) that generates the kotlinc module/build xml file. Since rsp files are supported, I've added ExtractSrcJarsCmd step to handle srcjars extraction. Minor reorderings to make sure that TransformKotlinToClasses recives only .java and .kt files when called from Module.compile. Bug: 73281388 Test: make -j hidl-doc Change-Id: I5a40b914569018dc529903a7f2864a5aeae838e5
* Remove unnecessary DeviceUsesClang.Stephen Hines2018-01-111-1/+0
| | | | | | | | | | This build function is unnecessary now that GCC is completely unsupported for Android platform builds. It is similar to USE_CLANG_PLATFORM_BUILD from the build/make side of things. Bug: http://b/64032869 Test: Builds Change-Id: Iddf5f91cc997c337c77a644265cb8dc4e5a915b4
* Merge "Have diff_build_graphs.sh print the number of lines in the diff"Treehugger Robot2017-12-051-1/+1
|\
| * Have diff_build_graphs.sh print the number of lines in the diffJeff Gaston2017-11-291-1/+1
| | | | | | | | | | | | | | | | Bug: b/69133815 Test: build/soong/diff_build_graphs.sh \ 'build/soong:work^' 'build/soong:work' Change-Id: Iaeb66ba53e1b3d7ddd4b4551b3ac29b12ce227c5
* | Make setup_go_workspace_for_soong work on MacDan Willemsen2017-12-041-1/+9
|/ | | | | Test: build/soong/scripts/setup_go_workspace_for_soong.sh on Mac and Linux Change-Id: Idfcad3ace6f3ff4b68a438b8f1e0d94ff35573e0
* Add license headers to all go and shell filesColin Cross2017-11-178-0/+112
| | | | | Test: none Change-Id: I75c443e05f2b1e17fcb6823182717d2e6f5df7c4
* Merge changes from topics "soong_logtags", "droiddoc_srcjars"Colin Cross2017-11-171-0/+0
|\ | | | | | | | | | | | | | | | | | | | | * changes: Fix genrules depending on Go tools Use logtags without merged file Export extract-srcjars.sh to Make Remove partial javastream proto support Add support for .srcjar files from genrules and srcs Fix java AIDL properties to match C/C++ Fix proto flags in java
| * Add support for .srcjar files from genrules and srcsColin Cross2017-11-171-0/+0
| | | | | | | | | | | | | | | | | | Allow srcs to contain .srcjar files, which will be extracted just before javac. Also allow genrules and generated sources to directly return .srcjar files. Test: m checkbuild Change-Id: Ie4cf60ecb9d2ec63a4c2275221544203b1383597
* | Implement diff_build_graphs.shJeff Gaston2017-11-151-0/+170
|/ | | | | | | | | | It runs multiproduct_kati against the pre-changed and post-changed code and confirms that the ninja files remain unchanged Test: ./diff_build_graphs.sh 'build/blueprint:work^' 'build/blueprint:work' Bug: 67478260 Change-Id: Ib43f54428b7c5abbe7706f464ee16dc8d0ef6f76
* Use relative paths in copygcclib.sh deps filesColin Cross2017-11-061-1/+1
| | | | | | | | Strip $PWD/ off the beginning of the path printed by gcc. Bug: 68719465 Test: m checkbuild Test: prebuilts/build-tools/linux-x86/bin/ninja -f out/combined-${TARGET_PRODUCT}.ninja -t deps | grep -E '^[[:space:]]*/' | sort | uniq
* Add default jar wrapper when wrapper property is not specifiedNan Zhang2017-11-031-0/+58
| | | | | | Bug: b/68779881 Test: manually copied the jar-wrapper.sh to out/soong/host/linux-x86/framework Change-Id: Idee1e7e64c6e3c89c89a8cd9c107a38533356b6c
* Fix source jarsColin Cross2017-10-261-0/+30
| | | | | | | | | | | Source jars were not working as designed because javac will only compile files from the -sourcepath if there are references to them starting from files on the command line. Switch to extracting the source jars into a directory and passing a list of the files to javac. Test: m checkbuild Change-Id: I9f7d824f8538d081b2f5ad64ae3cbfd0e96213af
* Initial support for converting jars to java9 system modulesColin Cross2017-10-161-0/+20
| | | | | | | | | | | | | | | Adds a java_system_modules module type that (when EXPERIMENTAL_USE_OPENJDK9 is set to true) converts a list of java library modules and prebuilt jars into system modules, and plumbs the system modules through to the javac command line. Also exports the location of the system modules to make variables, as well as the name of the default system module. Test: TestClasspath in java_test.go, runs automatically as part of the build Bug: 63986449 Change-Id: I27bd5d2010092422a27b69c91568e49010e02f40
* Fix ndk prebuilts script.Dan Albert2017-08-301-1/+1
| | | | | | | | This wasn't actually including the quotes, so it was a no-op. Test: build/soong/scripts/build-ndk-prebuilts.sh Bug: http://b/65113115 Change-Id: I43fda02f58b9661fc78eef9055063347baaf84b3
* Obsolete bootstrap.bash and ./soong wrappersDan Willemsen2017-08-182-87/+0
| | | | | | | | | | | | | We can call directly into the blueprint bootstrap.bash using values that soong_ui has already calculated. Instead of calling into blueprint.bash, build minibp with microfactory, and directly run ninja. This allows us to get individual tracing data from each component. Test: m -j blueprint_tools Test: m clean; m -j blueprint_tools Change-Id: I2239943c9a8a3ad6e1a40fa0dc914421f4b5202c
* Convert soong java from soong_zip to jarColin Cross2017-08-141-0/+64
| | | | | | | | | | | | soong_zip produces jar files that are not compatible with java's ZipInputStream. Switch to jar using ugly sed scripts to munge file lists into the alternating -C and file arguments required by jar. Bug: 64536066 Test: m -j checkbuild Test: build/soong/scripts/jar_args.sh --test Change-Id: Ifcc4bdab25e7d02342720eb246c673ff9a58bddb
* Add --skip-make to replace Soong's blueprint wrapper with soong_uiDan Willemsen2017-08-081-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This way we only have one way to start a build, which always has logging / tracing / etc, even if we don't need Kati. There's two ways to use this: As a direct replacement for mkdir out; cd out; ../bootstrap.bash; ./soong -- as long as --skip-make is always passed, we'll never run Kati, and Soong will run outside of it's "make" mode. This preserves most of the speed, and allows full user control over the Soong configuration. A (experimental, dangerous) way to temporarily bypass the product variable and kati steps of a build. As long as a user is sure that nothing has changed from the last build, and they know exactly which Ninja targets they want to build (which may not be the same as the arguments normally passed to 'm'), this can lead to shorter build startup times. Test: rm -rf out; m --skip-make libc Test: rm -rf out; m libc; m --skip-make libc Test: rm -rf out; mkdir out; cd out; ../bootstrap.bash; ./soong libc Test: build/soong/scripts/build-ndk-prebuilts.sh Change-Id: Ic0f91167b5779dba3f248a379fbaac67a75a946e
* Pass Platform_version_all_codenames to NDK build.Dan Albert2017-08-031-2/+36
| | | | | | | | | | | | | | | | | We're still only generating the released versions and "current" when we build with build-ndk-prebuilts.sh. Pass Platform_version_all_codenames from make to generate the in-progress platform versions as well. Also move this over to soong.variables, since that's the appropriate place for them. The Platform_sdk_version we were passing wasn't actually being used before. Test: OUT_DIR=ndk-out DIST_DIR=ndk-dist \ build/soong/scripts/build-ndk-prebuilts.sh Bug: None Change-Id: Iccb709f5c12309754073ac8f0d4bc365019dfcd3
* Switch to blueprint's microfactoryDan Willemsen2017-07-241-0/+66
| | | | | | | Bug: 63720725 Test: m -j nothing Test: mkdir o; ../bootstrap.bash; ./soong Change-Id: Id1f8312678f36afd08b49f8511fec3e6e5ba8de2
* Make mini-debug-info stripping pass on already stripped binariesColin Cross2017-04-131-12/+14
| | | | | | | | | | | Prebuilts may already be stripped. Instead of requiring every stripped prebuilt to be annotated with LOCAL_STRIP_MODULE := false, just make the default (mini-debug-info) pass through already-stripped modules without failing. Bug: 36793128 Test: manual Change-Id: I9aec008a867eb7df0fbba82b6dd36605dcbf6b9f
* Add script to make a Go-style workspace for SoongJeff Gaston2017-02-071-0/+67
| | | | | | Test: ./scripts/setup_go_workspace_for_soong.sh Change-Id: If091175d3b69976d3e1488304c4274296cc8afb4
* Pass PREBUILT_SDK_VERSION to soong ndk buildColin Cross2016-11-091-1/+5
| | | | | | | | Extract PREBUILT_SDK_VERSION from the make build system and pass it to soong when doing ndk builds. Test: untested Change-Id: I573900dfb83aa8665c2bc349b7823e64497754d3
* Add a script to build the NDK prebuilts.Dan Albert2016-10-191-0/+25
| | | | | | | | Test: OUT_DIR=ndk-out DIST_DIR=ndk-dist \ ./build/soong/scripts/build-ndk-prebuilts.sh Bug: None Change-Id: I3c930d2ec4d73196e355b90766eb14f0f0361460
* Add support for toc optimization in soongColin Cross2016-09-302-0/+76
| | | | | | | | | | Skip relinking against shared libraries whose interface hasn't changed. Test: mmma -j frameworks/native/libs/gui Test: touch frameworks/native/libs/gui/BufferItem.cpp Test: mmma -j frameworks/native/libs/gui, see nothing relinks past libgui Bug: 26014946 Change-Id: I4d4b8da6a35c682341ae51869f5c72b51e192053
* Support stripping shared libraries and binariesColin Cross2016-05-031-0/+122
| | | | | | | Strip all shared libraries and binaries by default. Use a shell script to wrap the long sequences of commands needed by some strip variants. Change-Id: I465bf7cc48330913e60e24762fd55fa2a7731c26
* Move shell and python scripts to scripts/ directoryColin Cross2016-04-293-0/+94
Change-Id: Icdff44a54d14ddfc2266d99cf0578a8105716918