我有以下的CMake代码片段,在
或者将不同部分赋值给变量,或添加引号,我得到了:
WORKING_DIRECTORY
中运行COMMAND
。我尝试了不同的方法来传递环境变量(MBEDTLS_INCLUDE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/../mbedtls/mbedtls/include
),但是都没有成功。
可用的片段(不带环境变量):
set(BUILD_CMD cargo build --features parsec-client/no-fs-permission-check)
set(WORKING_DIR "${CMAKE_CURRENT_SOURCE_DIR}/parsec_se_driver")
execute_process( COMMAND ${BUILD_CMD}
RESULT_VARIABLE CMD_ERROR
WORKING_DIRECTORY ${WORKING_DIR} )
if(NOT ${CMD_ERROR} MATCHES "0")
MESSAGE(SEND_ERROR "BUILD_CMD STATUS:" ${CMD_ERROR})
endif()
我该如何将环境变量传递给execute_process
?
如果我写类似以下的内容:
execute_process( COMMAND MBEDTLS_INCLUDE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/../mbedtls/mbedtls/include cargo build --features parsec-client/no-fs-permission-check
RESULT_VARIABLE CMD_ERROR
WORKING_DIRECTORY ${WORKING_DIR} )
或者将不同部分赋值给变量,或添加引号,我得到了:
BUILD_CMD STATUS:No such file or directory
set(ENV{MBEDTLS_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../mbedtls/mbedtls/include)
,目前的问题是有更方便的方法将环境变量传递给COMMAND
。这个结构是有效的,变量被传递了。如果有其他解决方案,我会非常感激,而不是这个临时解决方法。 - user3518295