Cmake doc creations: Setting environment PYTHONIOENCODING

1. This should force the python executable to use the desired encoding.
  The command is moved to a wrapper script to be able to set the environment
  at make-run-time.
  cherry-picked from a68ef98 and f3c8884
2. Python is choking on '\\'
  cherry-picked from 65deb30

Omiting changes to ReplaceValues.py, which will be hopefully done by Günter Milde
This commit is contained in:
Kornel Benko 2017-10-21 11:18:02 +02:00
parent bb5ee7f37e
commit 72122beee8
2 changed files with 37 additions and 5 deletions

View File

@ -31,11 +31,16 @@ foreach(_rel_doc ${_rel_lyx_docs})
SET_SOURCE_FILES_PROPERTIES(${_created_doc} GENERATED) SET_SOURCE_FILES_PROPERTIES(${_created_doc} GENERATED)
add_custom_command( add_custom_command(
OUTPUT "${_created_doc}" OUTPUT "${_created_doc}"
COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_CMAKE_PATH}/doc/ReplaceValues.py" COMMAND ${CMAKE_COMMAND}
"LYX_USERDIR_VER=${LYX_USERDIR_VER}" -DLYX_PYTHON_EXECUTABLE=${LYX_PYTHON_EXECUTABLE}
"LYX_DIR_VER=${LYX_DIR_VER}" -DTOP_CMAKE_PATH=${TOP_CMAKE_PATH}
"\\origin\ unavailable=\\origin\ /systemlyxdir/doc/${_rel_dir_part}" -DLYX_USERDIR_VER=${LYX_USERDIR_VER}
"${TOP_SRC_DIR}/lib/doc/${_rel_doc}" > "${_created_doc}" -DLYX_DIR_VER=${LYX_DIR_VER}
-DTOP_SRC_DIR=${TOP_SRC_DIR}
-DREL_DIR=${_rel_dir_part}
-DSOURCE=${_rel_doc}
-DCREATED=${_created_doc}
-P "${TOP_CMAKE_PATH}/doc/ReplaceValues.cmake"
DEPENDS "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" "${TOP_CMAKE_PATH}/doc/ReplaceValues.py" DEPENDS "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" "${TOP_CMAKE_PATH}/doc/ReplaceValues.py"
) )
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_rel_doc}" DESTINATION "${LYX_DATA_SUBDIR}doc/${_rel_dir_part}") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_rel_doc}" DESTINATION "${LYX_DATA_SUBDIR}doc/${_rel_dir_part}")

View File

@ -0,0 +1,27 @@
set(ENV{PYTHONIOENCODING} "utf-8")
# check if all needed variables are set
foreach(_v LYX_USERDIR_VER LYX_DIR_VER REL_DIR SOURCE CREATED LYX_PYTHON_EXECUTABLE)
if (NOT DEFINED ${_v})
message(FATAL_ERROR "${_v} not set")
else()
#message(STATUS "${_v}=${${_v}}")
endif()
endforeach()
set(originstring "origin\ unavailable=origin\ /systemlyxdir/doc/${REL_DIR}")
#message(STATUS "originstring=${originstring}")
execute_process(COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_CMAKE_PATH}/doc/ReplaceValues.py"
"LYX_USERDIR_VER=${LYX_USERDIR_VER}"
"LYX_DIR_VER=${LYX_DIR_VER}"
${originstring}
"${TOP_SRC_DIR}/lib/doc/${SOURCE}"
OUTPUT_FILE "${CREATED}"
RESULT_VARIABLE _err
ERROR_VARIABLE lyxerr)
if(_err)
message(STATUS "_err = ${_err}")
message(STATUS "lyxerr = ${lyxerr}")
message(FATAL_ERROR "Conversion of ${SOURCE} failed")
endif()