Прервать настройку cmake, если какой-либо шаг пользовательской команды завершился неудачно - PullRequest
0 голосов
/ 13 января 2020

Я хотел бы иметь собственную цель, которая подготовит тестовую среду, сгенерирует некоторый связанный код python и т. Д. c. Вот часть моего 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 в другом разделе COMMAND, потому что шаг 3 активирует виртуальную среду, а шаг 4 устанавливает пакет в эту среду.

В тот момент, если шаг 3 завершается неудачей, шаг 4 пытается быть выполнен, что я и не делаю не нравится Есть ли способ решить эту проблему?

...