Add support for python_defaults modules
Test: python_test.go Change-Id: I2077414a5b06da5e660a1b48bfdb2eb926fb702f
This commit is contained in:
parent
d4e641b6e9
commit
a3fc4ba733
4 changed files with 89 additions and 5 deletions
|
@ -238,6 +238,7 @@ bootstrap_go_package {
|
||||||
"python/androidmk.go",
|
"python/androidmk.go",
|
||||||
"python/binary.go",
|
"python/binary.go",
|
||||||
"python/builder.go",
|
"python/builder.go",
|
||||||
|
"python/defaults.go",
|
||||||
"python/installer.go",
|
"python/installer.go",
|
||||||
"python/library.go",
|
"python/library.go",
|
||||||
"python/python.go",
|
"python/python.go",
|
||||||
|
|
51
python/defaults.go
Normal file
51
python/defaults.go
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
// Copyright 2017 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 python
|
||||||
|
|
||||||
|
import (
|
||||||
|
"android/soong/android"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
android.RegisterModuleType("python_defaults", defaultsFactory)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Defaults struct {
|
||||||
|
android.ModuleBase
|
||||||
|
android.DefaultsModuleBase
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Defaults) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *Defaults) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func defaultsFactory() android.Module {
|
||||||
|
return DefaultsFactory()
|
||||||
|
}
|
||||||
|
|
||||||
|
func DefaultsFactory(props ...interface{}) android.Module {
|
||||||
|
module := &Defaults{}
|
||||||
|
|
||||||
|
module.AddProperties(props...)
|
||||||
|
module.AddProperties(
|
||||||
|
&BaseProperties{},
|
||||||
|
)
|
||||||
|
|
||||||
|
android.InitDefaultsModule(module)
|
||||||
|
|
||||||
|
return module
|
||||||
|
}
|
|
@ -109,6 +109,7 @@ type pathMapping struct {
|
||||||
|
|
||||||
type Module struct {
|
type Module struct {
|
||||||
android.ModuleBase
|
android.ModuleBase
|
||||||
|
android.DefaultableModuleBase
|
||||||
|
|
||||||
properties BaseProperties
|
properties BaseProperties
|
||||||
|
|
||||||
|
@ -194,6 +195,7 @@ func (p *Module) Init() android.Module {
|
||||||
}
|
}
|
||||||
|
|
||||||
android.InitAndroidArchModule(p, p.hod, p.multilib)
|
android.InitAndroidArchModule(p, p.hod, p.multilib)
|
||||||
|
android.InitDefaultableModule(p)
|
||||||
|
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,7 +222,28 @@ var (
|
||||||
mockFiles: map[string][]byte{
|
mockFiles: map[string][]byte{
|
||||||
bpFile: []byte(`subdirs = ["dir"]`),
|
bpFile: []byte(`subdirs = ["dir"]`),
|
||||||
filepath.Join("dir", bpFile): []byte(
|
filepath.Join("dir", bpFile): []byte(
|
||||||
`python_library_host {
|
`python_defaults {
|
||||||
|
name: "default_lib",
|
||||||
|
srcs: [
|
||||||
|
"default.py",
|
||||||
|
],
|
||||||
|
version: {
|
||||||
|
py2: {
|
||||||
|
enabled: true,
|
||||||
|
srcs: [
|
||||||
|
"default_py2.py",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
py3: {
|
||||||
|
enabled: false,
|
||||||
|
srcs: [
|
||||||
|
"default_py3.py",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
python_library_host {
|
||||||
name: "lib5",
|
name: "lib5",
|
||||||
pkg_path: "a/b/",
|
pkg_path: "a/b/",
|
||||||
srcs: [
|
srcs: [
|
||||||
|
@ -251,6 +272,7 @@ var (
|
||||||
|
|
||||||
python_binary_host {
|
python_binary_host {
|
||||||
name: "bin",
|
name: "bin",
|
||||||
|
defaults: ["default_lib"],
|
||||||
pkg_path: "e/",
|
pkg_path: "e/",
|
||||||
srcs: [
|
srcs: [
|
||||||
"bin.py",
|
"bin.py",
|
||||||
|
@ -271,10 +293,13 @@ var (
|
||||||
},
|
},
|
||||||
}`,
|
}`,
|
||||||
),
|
),
|
||||||
filepath.Join("dir", "file1.py"): nil,
|
filepath.Join("dir", "default.py"): nil,
|
||||||
filepath.Join("dir", "file2.py"): nil,
|
filepath.Join("dir", "default_py2.py"): nil,
|
||||||
filepath.Join("dir", "bin.py"): nil,
|
filepath.Join("dir", "default_py3.py"): nil,
|
||||||
filepath.Join("dir", "file4.py"): nil,
|
filepath.Join("dir", "file1.py"): nil,
|
||||||
|
filepath.Join("dir", "file2.py"): nil,
|
||||||
|
filepath.Join("dir", "bin.py"): nil,
|
||||||
|
filepath.Join("dir", "file4.py"): nil,
|
||||||
stubTemplateHost: []byte(`PYTHON_BINARY = '%interpreter%'
|
stubTemplateHost: []byte(`PYTHON_BINARY = '%interpreter%'
|
||||||
MAIN_FILE = '%main%'`),
|
MAIN_FILE = '%main%'`),
|
||||||
},
|
},
|
||||||
|
@ -283,7 +308,9 @@ var (
|
||||||
name: "bin",
|
name: "bin",
|
||||||
actualVersion: "PY3",
|
actualVersion: "PY3",
|
||||||
pyRunfiles: []string{
|
pyRunfiles: []string{
|
||||||
|
"runfiles/e/default.py",
|
||||||
"runfiles/e/bin.py",
|
"runfiles/e/bin.py",
|
||||||
|
"runfiles/e/default_py3.py",
|
||||||
"runfiles/e/file4.py",
|
"runfiles/e/file4.py",
|
||||||
},
|
},
|
||||||
depsPyRunfiles: []string{
|
depsPyRunfiles: []string{
|
||||||
|
@ -314,6 +341,9 @@ func TestPythonModule(t *testing.T) {
|
||||||
android.ModuleFactoryAdaptor(PythonLibraryHostFactory))
|
android.ModuleFactoryAdaptor(PythonLibraryHostFactory))
|
||||||
ctx.RegisterModuleType("python_binary_host",
|
ctx.RegisterModuleType("python_binary_host",
|
||||||
android.ModuleFactoryAdaptor(PythonBinaryHostFactory))
|
android.ModuleFactoryAdaptor(PythonBinaryHostFactory))
|
||||||
|
ctx.RegisterModuleType("python_defaults",
|
||||||
|
android.ModuleFactoryAdaptor(defaultsFactory))
|
||||||
|
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
|
||||||
ctx.Register()
|
ctx.Register()
|
||||||
ctx.MockFileSystem(d.mockFiles)
|
ctx.MockFileSystem(d.mockFiles)
|
||||||
_, testErrs := ctx.ParseBlueprintsFiles(bpFile)
|
_, testErrs := ctx.ParseBlueprintsFiles(bpFile)
|
||||||
|
|
Loading…
Reference in a new issue