_global_target_supported_platforms := blowfish, tbase, qsee, host, teegris

_global_target_parameters := \
  LOCAL_SDK_PATH \
  LOCAL_EXPORT_INCLUDE_DIRS \
  LOCAL_EXPORT_CFLAGS \
  LOCAL_EXPORT_CPPFLAGS \
  LOCAL_ARMCC_PATH \
  LOCAL_ARMCC_LICENSE \
  LOCAL_BUILD_TOOL \
  LOCAL_CHIP \
  LOCAL_ARCH \
  LOCAL_QSEE_PROC \
  LOCAL_QSEE_UNPROTECTED_MEM \
  LOCAL_SIGN_BOARD \
  LOCAL_SIGN_MODEL \
  LOCAL_SIGN_RUNTYPE \
  LOCAL_SIGN_TYPE \
  LOCAL_SIGNCLIENT_JAR \
  LOCAL_LLVM_ROOT \
  LOCAL_AARCH64_ROOT \
  LOCAL_ARM7_ROOT \
  LOCAL_QSEE_BRANCH \
  LOCAL_LLVM_VERSION \
  LOCAL_CROSS_GCC_PATH \
  LOCAL_CROSS_GCC_PATH_LGCC \
  LOCAL_CC \
  LOCAL_CXX

# Get variable listed in _global_target_parameters from the global context.
#   $(_global_target_mytarget_tbase_LOCAL_SDK_PATH)
# $(1) - target name
# $(2) - platform name
# $(3) - variable name
get-target-parameter = \
  $(_global_target_$(1)_$(2)_$(3))

# Save all variables listed in _global_target_parameters into global context.
#   _global_target_mytarget_tbase_LOCAL_SDK_PATH := $(LOCAL_SDK_PATH)
# $(1) - target name
# $(2) - platform name
save-all-target-parameters = \
  $(foreach _var,$(_global_target_parameters), \
    $(eval _global_target_$(1)_$(2)_$(_var) := $($(_var))))

# Restore all variables listed in _global_target_parameters from the global context.
#   LOCAL_SDK_PATH := $(_global_target_mytarget_tbase_LOCAL_SDK_PATH)
# $(1) - target name
# $(2) - platform name
restore-all-target-parameters = \
  $(foreach _var,$(_global_target_parameters), \
    $(eval $(_var) := $(call get-target-parameter,$(1),$(2),$(_var))))
