kmpkg_restore_env_variables
恢复一组此前通过 kmpkg_backup_env_variables() 备份的环境变量,使这些变量回到备份时的状态。
用法
kmpkg_restore_env_variables(VARS [<environment-variable>...])
参数说明
VARS
必填参数,指定需要恢复的环境变量名称列表(如 PATH、CC、CXX、CFLAGS 等)。可传入多个变量名,用空格分隔。
核心说明
- 依赖备份操作:使用该函数前,必须先通过
kmpkg_backup_env_variables(VARS ...)备份相同的环境变量——若未备份,恢复操作不会产生任何效果; - 恢复规则:
- 若备份时某变量存在,恢复后该变量会被重置为备份值;
- 若备份时某变量不存在,恢复后该变量会从当前环境中移除(即还原为“未定义”状态);
- 原子性:支持同时恢复多个环境变量,操作是批量执行的。
示例
完整的“备份-修改-恢复”流程
# 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_variables和kmpkg_restore_env_variables的实现均在该文件中,是成对使用的环境变量管理工具。