Merge "Refine error messages in case of missing api files"
This commit is contained in:
commit
03a471a853
|
@ -675,6 +675,34 @@ func (module *SdkLibrary) createInternalModules(mctx android.TopDownMutatorConte
|
||||||
if module.sdkLibraryProperties.Api_packages == nil {
|
if module.sdkLibraryProperties.Api_packages == nil {
|
||||||
mctx.PropertyErrorf("api_packages", "java_sdk_library must specify api_packages")
|
mctx.PropertyErrorf("api_packages", "java_sdk_library must specify api_packages")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
missing_current_api := false
|
||||||
|
|
||||||
|
for _, scope := range []string{"", "system-", "test-"} {
|
||||||
|
for _, api := range []string{"current.txt", "removed.txt"} {
|
||||||
|
path := path.Join(mctx.ModuleDir(), "api", scope+api)
|
||||||
|
p := android.ExistentPathForSource(mctx, path)
|
||||||
|
if !p.Valid() {
|
||||||
|
mctx.ModuleErrorf("Current api file %#v doesn't exist", path)
|
||||||
|
missing_current_api = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if missing_current_api {
|
||||||
|
script := "build/soong/scripts/gen-java-current-api-files.sh"
|
||||||
|
p := android.ExistentPathForSource(mctx, script)
|
||||||
|
|
||||||
|
if !p.Valid() {
|
||||||
|
panic(fmt.Sprintf("script file %s doesn't exist", script))
|
||||||
|
}
|
||||||
|
|
||||||
|
mctx.ModuleErrorf("One or more current api files are missing. "+
|
||||||
|
"You can update them by:\n"+
|
||||||
|
"%s %q && m update-api", script, mctx.ModuleDir())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// for public API stubs
|
// for public API stubs
|
||||||
module.createStubsLibrary(mctx, apiScopePublic)
|
module.createStubsLibrary(mctx, apiScopePublic)
|
||||||
module.createDocs(mctx, apiScopePublic)
|
module.createDocs(mctx, apiScopePublic)
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
# Copyright (C) 2019 The Android Open Source Project
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
echo "usage: $0 <modulePath>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
api_dir=$1/api
|
||||||
|
|
||||||
|
mkdir -p "$api_dir"
|
||||||
|
|
||||||
|
scopes=("" system- test-)
|
||||||
|
apis=(current removed)
|
||||||
|
|
||||||
|
for scope in "${scopes[@]}"; do
|
||||||
|
for api in "${apis[@]}"; do
|
||||||
|
touch "${api_dir}/${scope}${api}.txt"
|
||||||
|
done
|
||||||
|
done
|
Loading…
Reference in New Issue