gpt4 book ai didi

cmake - 推送/弹出一个 cmake 变量

转载 作者:行者123 更新时间:2023-12-04 14:40:28 24 4
gpt4 key购买 nike

有没有办法在执行另一个 CMakeLists.txt 时临时更改 CMake 变量文件。像这样的东西?

PUSH ( SOME_VARIABLE )
SET ( SOME_VARIABLE "temporary value" )
ADD_SUBDIRECTORY( "subdir" )
POP ( SOME_VARIABLE )

我知道你可以这样做:
SET ( SOME_VARIABLE_TMP "${SOME_VARIABLE}" )
SET ( SOME_VARIABLE "temporary value" )
ADD_SUBDIRECTORY( "subdir" )
SET ( SOME_VARIABLE "${SOME_VARIABLE_TMP} )

而且我想我什至可以自己制作一些hacky函数来完成它,像这样(未经测试):
FUNCTION ( PUSH VARNAME )
SET ( ${VARNAME}_TMP "${${VARNAME}}" PARENT_SCOPE )
ENDFUNCTION ()

FUNCTION ( POP VARNAME )
SET ( ${VARNAME} "${${VARNAME}_TMP}" PARENT_SCOPE )
ENDFUNCTION ()

您甚至可以扩展它,以便在您执行 push push pop pop 时它可以工作。但是我想知道 有没有一种很好的方法可以在 native 上做到这一点 ?

最佳答案

不,没有一个很好的方法可以在本地做到这一点。

你可以移动 ADD_SUBDIRECTORY()和所有变量修改成 FUNCTION()本身。这会给你你自己的变量范围:

FUNCTION( ADD_MY_SUBDIR )
SET ( SOME_VARIABLE "temporary value" )
ADD_SUBDIRECTORY( "subdir" )
ENDFUNCTION ()

关于cmake - 推送/弹出一个 cmake 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com