Backport r38791, Replace a perl-script with the python version

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@38832 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Kornel Benko 2011-05-24 18:36:27 +00:00
parent a7d8f6b4bf
commit 902c932674
6 changed files with 64 additions and 12 deletions

View File

@ -13,7 +13,8 @@ if(COMMAND cmake_policy)
cmake_policy(SET CMP0005 OLD) cmake_policy(SET CMP0005 OLD)
endif() endif()
set(LYX_PROJECT lyx) #needed to distinguish fron trunk, so we can install both simultaneously
set(LYX_PROJECT lyx20)
project(${LYX_PROJECT}) project(${LYX_PROJECT})
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
@ -488,9 +489,8 @@ add_subdirectory(scripts)
if(LYX_INSTALL) if(LYX_INSTALL)
FIND_PROGRAM(LYX_PERL_EXECUTABLE perl) if(${LYX_PYTHON_EXECUTABLE} MATCHES "-NOTFOUND")
if(${LYX_PERL_EXECUTABLE} MATCHES "-NOTFOUND") message(STATUS "Python required to create doc!")
message(STATUS "Perl required to create doc!")
else() else()
add_subdirectory(man) add_subdirectory(man)
add_subdirectory(doc) add_subdirectory(doc)

View File

@ -7,9 +7,6 @@
project(doc) project(doc)
#TODO: replace perl script with python, see scons:
# http://www.lyx.org/trac/browser/lyx-devel/trunk/development/scons/scons_utils.py
SET(_docs) SET(_docs)
file(GLOB_RECURSE _rel_lyx_docs RELATIVE "${TOP_SRC_DIR}/lib/doc" "${TOP_SRC_DIR}/lib/doc/*.lyx" "${TOP_SRC_DIR}/lib/doc/*.txt") file(GLOB_RECURSE _rel_lyx_docs RELATIVE "${TOP_SRC_DIR}/lib/doc" "${TOP_SRC_DIR}/lib/doc/*.lyx" "${TOP_SRC_DIR}/lib/doc/*.txt")
@ -29,8 +26,8 @@ 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 perl "${CMAKE_SOURCE_DIR}/doc/ReplaceValues.pl" "LYX_USERDIR_VER=${LYX_USERDIR_VER}" "LYX_DIR_VER=${LYX_DIR_VER}" "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" > "${_created_doc}" COMMAND ${LYX_PYTHON_EXECUTABLE} "${TOP_SRC_DIR}/development/cmake/doc/ReplaceValues.py" "LYX_USERDIR_VER=${LYX_USERDIR_VER}" "LYX_DIR_VER=${LYX_DIR_VER}" "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" > "${_created_doc}"
DEPENDS "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" DEPENDS "${TOP_SRC_DIR}/lib/doc/${_rel_doc}" "${TOP_SRC_DIR}/development/cmake/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}")
LIST(APPEND _docs "${_created_doc}") LIST(APPEND _docs "${_created_doc}")

View File

@ -0,0 +1,55 @@
#! /usr/bin/env python
# file ReplaceValues.py
#
# This file is part of LyX, the document processor.
# Licence details can be found in the file COPYING.
#
# author: Kornel Benko, kornel@lyx.org
#
# Syntax: ReplaceValues.py [<var1>=<Subst1> [<var2>=<Subst> ...]] <Inputfile> [<Inputfile> ...]
import sys
import re
Subst = {} # map of desired substitutions
prog = re.compile("")
def createProg():
matchingS = "\\b|\\b".join(Subst.keys())
pattern = "".join(["(.*)(\\b", matchingS, "\\b)(.*)"])
return re.compile(pattern)
def SubstituteDataInLine(line):
result = line
m = prog.match(result)
if m:
return "".join([SubstituteDataInLine(m.group(1)),
Subst[m.group(2)],
SubstituteDataInLine(m.group(3))])
return line
def SubstituteDataInFile(InFile):
for line in open(InFile):
print SubstituteDataInLine(line[:-1])
##########################################
args = sys.argv
del args[0] # we don't need the name ot this script
while len(args) > 0:
arg = args[0]
entry = args[0].split("=",1)
if len(entry) == 2:
key=entry[0]
val=entry[1]
if len(key) > 0:
Subst[key] = val
else:
prog = createProg()
SubstituteDataInFile(args[0])
del args[0]

View File

@ -1192,7 +1192,7 @@ status collapsed
status collapsed status collapsed
\begin_layout Plain Layout \begin_layout Plain Layout
LYX_USERDIR_20x LYX_USERDIR_VER
\end_layout \end_layout
\end_inset \end_inset

View File

@ -1186,7 +1186,7 @@ MonNouveauRép
Ces répertoires sont complètement indépendants (mais lisez la suite). Ces répertoires sont complètement indépendants (mais lisez la suite).
Notez que positionner la variable d'environnement Notez que positionner la variable d'environnement
\family typewriter \family typewriter
LYX_USERDIR_16x LYX_USERDIR_VER
\family default \family default
a exactement le même effet. a exactement le même effet.
\end_layout \end_layout

View File

@ -1267,7 +1267,7 @@ status collapsed
status collapsed status collapsed
\begin_layout Plain Layout \begin_layout Plain Layout
LYX_USERDIR_20x LYX_USERDIR_VER
\end_layout \end_layout
\end_inset \end_inset