跳到主要内容

kmpkg_restore_env_variables

恢复一组此前通过 kmpkg_backup_env_variables() 备份的环境变量,使这些变量回到备份时的状态。

用法

kmpkg_restore_env_variables(VARS [<environment-variable>...])

参数说明

VARS

必填参数,指定需要恢复的环境变量名称列表(如 PATHCCCXXCFLAGS 等)。可传入多个变量名,用空格分隔。

核心说明

  1. 依赖备份操作:使用该函数前,必须先通过 kmpkg_backup_env_variables(VARS ...) 备份相同的环境变量——若未备份,恢复操作不会产生任何效果;
  2. 恢复规则
    • 若备份时某变量存在,恢复后该变量会被重置为备份值;
    • 若备份时某变量不存在,恢复后该变量会从当前环境中移除(即还原为“未定义”状态);
  3. 原子性:支持同时恢复多个环境变量,操作是批量执行的。

示例

完整的“备份-修改-恢复”流程

# 1. 备份关键环境变量(PATH、CC、CXX)
kmpkg_backup_env_variables(VARS PATH CC CXX)

# 2. 临时修改环境变量(例如适配特定构建需求)
set(ENV{CC} "${CURRENT_HOST_INSTALLED_DIR}/bin/gcc.exe")
set(ENV{CXX} "${CURRENT_HOST_INSTALLED_DIR}/bin/g++.exe")
kmpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_HOST_INSTALLED_DIR}/bin")

# 3. 执行依赖修改后环境的构建操作
kmpkg_make_configure(SOURCE_PATH ${SOURCE_PATH})

# 4. 恢复环境变量到备份状态
kmpkg_restore_env_variables(VARS PATH CC CXX)

源码

scripts/cmake/kmpkg_backup_restore_env_vars.cmake

注:kmpkg_backup_env_variableskmpkg_restore_env_variables 的实现均在该文件中,是成对使用的环境变量管理工具。