]> git.lyx.org Git - lyx.git/commitdiff
Cmake doc creations: Setting environment PYTHONIOENCODING
authorKornel Benko <kornel@lyx.org>
Sat, 21 Oct 2017 09:18:02 +0000 (11:18 +0200)
committerKornel Benko <kornel@lyx.org>
Sat, 21 Oct 2017 09:18:02 +0000 (11:18 +0200)
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

development/cmake/doc/CMakeLists.txt
development/cmake/doc/ReplaceValues.cmake [new file with mode: 0644]

index 647522f214abb0a0c15a83dfbe7fda4bac924606..9379ae6c878bca10ddc6764a13de8afd26810d19 100644 (file)
@@ -31,11 +31,16 @@ foreach(_rel_doc ${_rel_lyx_docs})
     SET_SOURCE_FILES_PROPERTIES(${_created_doc} GENERATED)
     add_custom_command(
       OUTPUT "${_created_doc}"
-      COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_CMAKE_PATH}/doc/ReplaceValues.py"
-       "LYX_USERDIR_VER=${LYX_USERDIR_VER}"
-       "LYX_DIR_VER=${LYX_DIR_VER}"
-       "\\origin\ unavailable=\\origin\ /systemlyxdir/doc/${_rel_dir_part}"
-       "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" > "${_created_doc}"
+      COMMAND ${CMAKE_COMMAND}
+        -DLYX_PYTHON_EXECUTABLE=${LYX_PYTHON_EXECUTABLE}
+        -DTOP_CMAKE_PATH=${TOP_CMAKE_PATH}
+        -DLYX_USERDIR_VER=${LYX_USERDIR_VER}
+        -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"
       )
     install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_rel_doc}" DESTINATION "${LYX_DATA_SUBDIR}doc/${_rel_dir_part}")
diff --git a/development/cmake/doc/ReplaceValues.cmake b/development/cmake/doc/ReplaceValues.cmake
new file mode 100644 (file)
index 0000000..77026cb
--- /dev/null
@@ -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()