Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果自定义命令的任何步骤失败,则中止cmake配置_Python_Cmake_Python Venv - Fatal编程技术网

Python 如果自定义命令的任何步骤失败,则中止cmake配置

Python 如果自定义命令的任何步骤失败,则中止cmake配置,python,cmake,python-venv,Python,Cmake,Python Venv,我希望有一个定制的目标,它将准备测试环境,生成一些相关的python代码,等等。 以下是我的CMakeLists.txt的一部分: add_custom_target(test_env COMMAND bash -c 'python3 -m venv ${DEPL_TEST_EXEC}/virtenv ' #step 1 COMMAND bash -c 'java -jar ${SWAGGER_PATH}/swagger-codegen-cli-3.0.15.j

我希望有一个定制的目标,它将准备测试环境,生成一些相关的python代码,等等。 以下是我的CMakeLists.txt的一部分:

add_custom_target(test_env
        COMMAND bash -c 'python3 -m venv ${DEPL_TEST_EXEC}/virtenv '  #step 1
        COMMAND bash -c 'java -jar ${SWAGGER_PATH}/swagger-codegen-cli-3.0.15.jar generate -i ${SIGYN_SPECS}/mySpecialAPI.yaml -l python -o ${DEPL_TEST_EXEC}/mySpecialAPI' #step 2
        COMMAND bash -c \'
            . ${DEPL_TEST_EXEC}/virtenv/bin/activate\; #step 3
            pip install ${DEPL_TEST_EXEC}/mySpecialAPI/ #step 4
        ')
如果步骤1或步骤2失败,则不执行后续步骤。但我不能将步骤3和步骤4放在不同的命令部分,因为步骤3激活虚拟环境,步骤4将在该环境中安装一个包


目前,如果第3步失败,那么第4步就会尝试执行,这是我不喜欢的。有办法解决这个问题吗?

因为从CMake的角度来看,
步骤3
步骤4
不是“步骤”,问题不在于CMake方式,而在于如果
步骤3
成功,执行
步骤4
的shell方式。关于这个话题有很多问题。请参见例如建议有帮助的方法
command1和&command2
@Tsyvarev。非常感谢。