]> git.lyx.org Git - lyx.git/blob - src/tex2lyx/test/env_custom_command.cmake
Update tex2lyx test reference after 754cb3d1
[lyx.git] / src / tex2lyx / test / env_custom_command.cmake
1 # This file is part of LyX, the document processor.
2 # Licence details can be found in the file COPYING.
3 #
4 # Copyright (c) 2015 Kornel Benko <kornel@lyx.org>
5 #
6 # ENVIRON, SINGLEPARLIST and PARAMS strings are separated by "'"
7 # Script should be called like:
8 #   add_custom_command(
9 #     COMMAND ${CMAKE_COMMAND}
10 #     -DCOMMAND="${LYX_PYTHON_EXECUTABLE}"
11 #     -DENVIRON="${LYX_USERDIR_VER}=${LYX_TESTS_USERDIR}"
12 #     -DPARAMS="${runtestsScript}'$<TARGET_FILE:${_tex2lyx}>'${scriptDir}'${CMAKE_CURRENT_SOURCE_DIR}"
13 #     -DSINGLEPARLIST="${LyxTestFiles}"
14 #     -P ${TOP_SRC_DIR}/src/tex2lyx/test/env_custom_command.cmake
15 #     WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
16 #     DEPENDS ...
17 #     )
18
19 string(REGEX MATCHALL "[^']+" ENVIRON_LIST "${ENVIRON}")
20 foreach(_env ${ENVIRON_LIST})
21   if (_env MATCHES "^\([^=]+\)=\(.*\)$")
22     set(ENV{${CMAKE_MATCH_1}} ${CMAKE_MATCH_2})
23     #message(STATUS "setting env ${CMAKE_MATCH_1}=${CMAKE_MATCH_2}")
24   else()
25     message(FATAL_ERROR "Wrong environment string \"${_env}\"")
26   endif()
27 endforeach()
28
29 string(REGEX MATCHALL "[^']+" parameters "${PARAMS}")
30 string(REGEX MATCHALL "[^']+" extrasingleparamlist "${SINGLEPARLIST}")
31
32 foreach(_extraparam ${extrasingleparamlist} )
33   execute_process(COMMAND "${COMMAND}" ${parameters} ${_extraparam}
34     RESULT_VARIABLE _err
35     OUTPUT_VARIABLE _out)
36
37   message(STATUS ${_out})
38   string(COMPARE NOTEQUAL  ${_err} 0 _erg)
39   if(_erg)
40     message(FATAL_ERROR "\"${COMMAND}\" ${parameters} failed")
41   endif()
42 endforeach()
43