Generate soong_config_module_type inline in the snapshot am: d29f8e0597
Original change: https://android-review.googlesource.com/c/platform/packages/modules/common/+/2120156 Change-Id: I8265356d7190940055ff4193e8b5780501f40d7d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -85,10 +85,6 @@ class SoongConfigBoilerplateInserter(FileTransformation):
|
|||||||
# The configuration variable that will control the prefer setting.
|
# The configuration variable that will control the prefer setting.
|
||||||
configVar: ConfigVar
|
configVar: ConfigVar
|
||||||
|
|
||||||
# The bp file containing the definitions of the configuration module types
|
|
||||||
# to use in the sdk.
|
|
||||||
configBpDefFile: str
|
|
||||||
|
|
||||||
# The prefix to use for the soong config module types.
|
# The prefix to use for the soong config module types.
|
||||||
configModuleTypePrefix: str
|
configModuleTypePrefix: str
|
||||||
|
|
||||||
@@ -162,12 +158,13 @@ class SoongConfigBoilerplateInserter(FileTransformation):
|
|||||||
}},
|
}},
|
||||||
}},""")
|
}},""")
|
||||||
|
|
||||||
|
# Add the module type to the list of module types that need to
|
||||||
|
# have corresponding config module types.
|
||||||
|
config_module_types.add(module_type)
|
||||||
|
|
||||||
# Change the module type to the corresponding soong config
|
# Change the module type to the corresponding soong config
|
||||||
# module type by adding the prefix.
|
# module type by adding the prefix.
|
||||||
module_type = self.configModuleTypePrefix + module_type
|
module_type = self.configModuleTypePrefix + module_type
|
||||||
# Add the module type to the list of module types that need to
|
|
||||||
# be imported into the bp file.
|
|
||||||
config_module_types.add(module_type)
|
|
||||||
|
|
||||||
# Generate the module, possibly with the new module type and
|
# Generate the module, possibly with the new module type and
|
||||||
# containing the
|
# containing the
|
||||||
@@ -175,20 +172,23 @@ class SoongConfigBoilerplateInserter(FileTransformation):
|
|||||||
content_lines.extend(module_content)
|
content_lines.extend(module_content)
|
||||||
content_lines.append("}")
|
content_lines.append("}")
|
||||||
|
|
||||||
# Add the soong_config_module_type_import module definition that imports
|
# Add the soong_config_module_type module definitions to the header
|
||||||
# the soong config module types into this bp file to the header lines so
|
# lines so that they appear before any uses.
|
||||||
# that they appear before any uses.
|
header_lines.append("")
|
||||||
module_types = "\n".join(
|
for module_type in sorted(config_module_types):
|
||||||
[f' "{mt}",' for mt in sorted(config_module_types)])
|
# Create the corresponding soong config module type name by adding
|
||||||
|
# the prefix.
|
||||||
|
config_module_type = self.configModuleTypePrefix + module_type
|
||||||
header_lines.append(f"""
|
header_lines.append(f"""
|
||||||
// Soong config variable stanza added by {producer.script}.
|
// Soong config variable module type added by {producer.script}.
|
||||||
soong_config_module_type_import {{
|
soong_config_module_type {{
|
||||||
from: "{self.configBpDefFile}",
|
name: "{config_module_type}",
|
||||||
module_types: [
|
module_type: "{module_type}",
|
||||||
{module_types}
|
config_namespace: "{self.configVar.namespace}",
|
||||||
],
|
bool_variables: ["{self.configVar.name}"],
|
||||||
|
properties: ["prefer"],
|
||||||
}}
|
}}
|
||||||
""")
|
""".lstrip())
|
||||||
|
|
||||||
# Overwrite the file with the updated contents.
|
# Overwrite the file with the updated contents.
|
||||||
file.seek(0)
|
file.seek(0)
|
||||||
@@ -624,10 +624,6 @@ class MainlineModule:
|
|||||||
name="module_build_from_source",
|
name="module_build_from_source",
|
||||||
)
|
)
|
||||||
|
|
||||||
# The bp file containing the definitions of the configuration module types
|
|
||||||
# to use in the sdk.
|
|
||||||
configBpDefFile: str = "packages/modules/common/Android.bp"
|
|
||||||
|
|
||||||
# The prefix to use for the soong config module types.
|
# The prefix to use for the soong config module types.
|
||||||
configModuleTypePrefix: str = "module_"
|
configModuleTypePrefix: str = "module_"
|
||||||
|
|
||||||
@@ -644,8 +640,7 @@ class MainlineModule:
|
|||||||
inserter = SoongConfigBoilerplateInserter(
|
inserter = SoongConfigBoilerplateInserter(
|
||||||
"Android.bp",
|
"Android.bp",
|
||||||
configVar=self.configVar,
|
configVar=self.configVar,
|
||||||
configModuleTypePrefix=self.configModuleTypePrefix,
|
configModuleTypePrefix=self.configModuleTypePrefix)
|
||||||
configBpDefFile=self.configBpDefFile)
|
|
||||||
transformations.append(inserter)
|
transformations.append(inserter)
|
||||||
return transformations
|
return transformations
|
||||||
|
|
||||||
@@ -690,7 +685,6 @@ MAINLINE_MODULES = [
|
|||||||
namespace="art_module",
|
namespace="art_module",
|
||||||
name="source_build",
|
name="source_build",
|
||||||
),
|
),
|
||||||
configBpDefFile="prebuilts/module_sdk/art/SoongConfig.bp",
|
|
||||||
configModuleTypePrefix="art_prebuilt_",
|
configModuleTypePrefix="art_prebuilt_",
|
||||||
),
|
),
|
||||||
MainlineModule(
|
MainlineModule(
|
||||||
|
|||||||
@@ -399,8 +399,7 @@ class TestSoongConfigBoilerplateInserter(unittest.TestCase):
|
|||||||
"""Tests the transformations applied to a common mainline module.
|
"""Tests the transformations applied to a common mainline module.
|
||||||
|
|
||||||
This uses ipsec as an example of a common mainline module. This checks
|
This uses ipsec as an example of a common mainline module. This checks
|
||||||
that the correct Soong config module types and variables are used and
|
that the general Soong config module types and variables are used.
|
||||||
that it imports the definitions from the correct location.
|
|
||||||
"""
|
"""
|
||||||
src = read_test_data("ipsec_Android.bp.input")
|
src = read_test_data("ipsec_Android.bp.input")
|
||||||
|
|
||||||
@@ -416,7 +415,7 @@ class TestSoongConfigBoilerplateInserter(unittest.TestCase):
|
|||||||
|
|
||||||
The ART mainline module uses a different Soong config setup to the
|
The ART mainline module uses a different Soong config setup to the
|
||||||
common mainline modules. This checks that the ART specific Soong config
|
common mainline modules. This checks that the ART specific Soong config
|
||||||
module types, variable and imports are used.
|
module types, and variables are used.
|
||||||
"""
|
"""
|
||||||
src = read_test_data("art_Android.bp.input")
|
src = read_test_data("art_Android.bp.input")
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,30 @@
|
|||||||
// This is auto-generated. DO NOT EDIT.
|
// This is auto-generated. DO NOT EDIT.
|
||||||
|
|
||||||
// Soong config variable stanza added by test_art.
|
// Soong config variable module type added by test_art.
|
||||||
soong_config_module_type_import {
|
soong_config_module_type {
|
||||||
from: "prebuilts/module_sdk/art/SoongConfig.bp",
|
name: "art_prebuilt_java_import",
|
||||||
module_types: [
|
module_type: "java_import",
|
||||||
"art_prebuilt_java_import",
|
config_namespace: "art_module",
|
||||||
"art_prebuilt_prebuilt_bootclasspath_fragment",
|
bool_variables: ["source_build"],
|
||||||
"art_prebuilt_prebuilt_platform_compat_config",
|
properties: ["prefer"],
|
||||||
],
|
}
|
||||||
|
|
||||||
|
// Soong config variable module type added by test_art.
|
||||||
|
soong_config_module_type {
|
||||||
|
name: "art_prebuilt_prebuilt_bootclasspath_fragment",
|
||||||
|
module_type: "prebuilt_bootclasspath_fragment",
|
||||||
|
config_namespace: "art_module",
|
||||||
|
bool_variables: ["source_build"],
|
||||||
|
properties: ["prefer"],
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soong config variable module type added by test_art.
|
||||||
|
soong_config_module_type {
|
||||||
|
name: "art_prebuilt_prebuilt_platform_compat_config",
|
||||||
|
module_type: "prebuilt_platform_compat_config",
|
||||||
|
config_namespace: "art_module",
|
||||||
|
bool_variables: ["source_build"],
|
||||||
|
properties: ["prefer"],
|
||||||
}
|
}
|
||||||
|
|
||||||
package {
|
package {
|
||||||
|
|||||||
@@ -1,12 +1,21 @@
|
|||||||
// This is auto-generated. DO NOT EDIT.
|
// This is auto-generated. DO NOT EDIT.
|
||||||
|
|
||||||
// Soong config variable stanza added by test_common_mainline_module.
|
// Soong config variable module type added by test_common_mainline_module.
|
||||||
soong_config_module_type_import {
|
soong_config_module_type {
|
||||||
from: "packages/modules/common/Android.bp",
|
name: "module_java_sdk_library_import",
|
||||||
module_types: [
|
module_type: "java_sdk_library_import",
|
||||||
"module_java_sdk_library_import",
|
config_namespace: "ANDROID",
|
||||||
"module_prebuilt_bootclasspath_fragment",
|
bool_variables: ["module_build_from_source"],
|
||||||
],
|
properties: ["prefer"],
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soong config variable module type added by test_common_mainline_module.
|
||||||
|
soong_config_module_type {
|
||||||
|
name: "module_prebuilt_bootclasspath_fragment",
|
||||||
|
module_type: "prebuilt_bootclasspath_fragment",
|
||||||
|
config_namespace: "ANDROID",
|
||||||
|
bool_variables: ["module_build_from_source"],
|
||||||
|
properties: ["prefer"],
|
||||||
}
|
}
|
||||||
|
|
||||||
package {
|
package {
|
||||||
|
|||||||
Reference in New Issue
Block a user