soong: rework soong_config for Pie
Change-Id: I3c5001f02975e5487ba66a02217f1d24d2021272
diff --git a/build/soong/soong_config.mk b/build/soong/soong_config.mk
index fdc0869..0a7ca60 100644
--- a/build/soong/soong_config.mk
+++ b/build/soong/soong_config.mk
@@ -1,16 +1,16 @@
-# Insert new variables inside the Lineage structure
-lineage_soong:
- $(hide) mkdir -p $(dir $@)
- $(hide) (\
- echo '{'; \
- echo '"Lineage": {'; \
- echo ' "Has_legacy_camera_hal1": $(if $(filter true,$(TARGET_HAS_LEGACY_CAMERA_HAL1)),true,false),'; \
- echo ' "Needs_text_relocations": $(if $(filter true,$(TARGET_NEEDS_PLATFORM_TEXT_RELOCATIONS)),true,false),'; \
- echo ' "Specific_camera_parameter_library": "$(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY)",'; \
- echo ' "Target_shim_libs": "$(subst $(space),:,$(TARGET_LD_SHIM_LIBS))",'; \
- echo ' "Uses_generic_camera_parameter_library": $(if $(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY),false,true),'; \
- echo ' "Uses_nvidia_enhancements": $(if $(filter TRUE,$(NV_ANDROID_FRAMEWORK_ENHANCEMENTS)),true,false),'; \
- echo ' "Uses_qcom_bsp_legacy": $(if $(filter true,$(TARGET_USES_QCOM_BSP_LEGACY)),true,false),'; \
- echo ' "Uses_qti_camera_device": $(if $(filter true,$(TARGET_USES_QTI_CAMERA_DEVICE)),true,false)'; \
- echo '},'; \
- echo '') > $(SOONG_VARIABLES_TMP)
+_contents := $(_contents) "Lineage":{$(newline)
+
+# See build/core/soong_config.mk for the add_json_* functions you can use here.
+$(call add_json_bool, Has_legacy_camera_hal1, $(filter true,$(TARGET_HAS_LEGACY_CAMERA_HAL1)))
+$(call add_json_bool, Needs_text_relocations, $(filter true,$(TARGET_NEEDS_PLATFORM_TEXT_RELOCATIONS)))
+$(call add_json_str, Specific_camera_parameter_library, $(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY))
+$(call add_json_str, Target_shim_libs, $(TARGET_LD_SHIM_LIBS))
+$(call add_json_bool, Uses_generic_camera_parameter_library, $(if $(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY),,true))
+$(call add_json_bool, Uses_nvidia_enhancements, $(filter TRUE,$(NV_ANDROID_FRAMEWORK_ENHANCEMENTS)))
+$(call add_json_bool, Uses_qcom_bsp_legacy, $(filter true,$(TARGET_USES_QCOM_BSP_LEGACY)))
+$(call add_json_bool, Uses_qti_camera_device, $(filter true,$(TARGET_USES_QTI_CAMERA_DEVICE)))
+
+# This causes the build system to strip out the last comma in our nested struct, to keep the JSON valid.
+_contents := $(_contents)__SV_END
+
+_contents := $(_contents) },$(newline)