]> git.lyx.org Git - features.git/commitdiff
* configure.py : Detect java and perl scripts in a general way.
authorJulien Rioux <jrioux@lyx.org>
Tue, 20 Sep 2011 18:29:18 +0000 (18:29 +0000)
committerJulien Rioux <jrioux@lyx.org>
Tue, 20 Sep 2011 18:29:18 +0000 (18:29 +0000)
  - Fix the detection of htmltolatex (#6339).
  - Fix the detection of splitindex (#7579).
  - Fix the detection of jfig3-itext and jfig3.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@39716 a592a061-630c-0410-9148-cb99ea01b6c8

lib/configure.py
status.20x

index 7e989a3ea8aa3dd4f803c8917d171d969308292f..d9e1960f62bc31c0959b5f37c076bfeb01785ae2 100644 (file)
@@ -170,10 +170,15 @@ def checkProg(description, progs, rc_entry = [], path = [], not_found = ''):
         sys.exit(2)
     logger.info('checking for ' + description + '...')
     ## print '(' + ','.join(progs) + ')',
+    global java, perl
     for idx in range(len(progs)):
         # ac_prog may have options, ac_word is the command name
         ac_prog = progs[idx]
         ac_word = ac_prog.split(' ')[0]
+        if (ac_word.endswith('.class') or ac_word.endswith('.jar')) and java == '':
+            continue
+        if ac_word.endswith('.pl') and perl == '':
+            continue
         msg = '+checking for "' + ac_word + '"... '
         path = os.environ["PATH"].split(os.pathsep) + path
         extlist = ['']
@@ -183,6 +188,13 @@ def checkProg(description, progs, rc_entry = [], path = [], not_found = ''):
             for ext in extlist:
                 if os.path.isfile( os.path.join(ac_dir, ac_word + ext) ):
                     logger.info(msg + ' yes')
+                    # deal with java and perl
+                    if ac_word.endswith('.class'):
+                        ac_prog = ac_prog.replace(ac_word, r'%s \"%s\"' % (java, os.path.join(ac_dir, ac_word[:-6])))
+                    elif ac_word.endswith('.jar'):
+                        ac_prog = ac_prog.replace(ac_word, r'%s -jar \"%s\"' % (java, os.path.join(ac_dir, ac_word)))
+                    elif ac_word.endswith('.pl'):
+                        ac_prog = ac_prog.replace(ac_word, r'%s -w \"%s\"' % (perl, os.path.join(ac_dir, ac_word)))
                     # write rc entries for this command
                     if len(rc_entry) == 1:
                         addToRC(rc_entry[0].replace('%%', ac_prog))
@@ -211,10 +223,15 @@ def checkProgAlternatives(description, progs, rc_entry = [], alt_rc_entry = [],
     found_prime = False
     real_ac_dir = ''
     real_ac_word = not_found
+    global java, perl
     for idx in range(len(progs)):
         # ac_prog may have options, ac_word is the command name
         ac_prog = progs[idx]
         ac_word = ac_prog.split(' ')[0]
+        if (ac_word.endswith('.class') or ac_word.endswith('.jar')) and java == '':
+            continue
+        if ac_word.endswith('.pl') and perl == '':
+            continue
         msg = '+checking for "' + ac_word + '"... '
         path = os.environ["PATH"].split(os.pathsep) + path
         extlist = ['']
@@ -227,6 +244,13 @@ def checkProgAlternatives(description, progs, rc_entry = [], alt_rc_entry = [],
                     logger.info(msg + ' yes')
                     pr = re.compile(r'(\\\S+)(.*)$')
                     m = None
+                    # deal with java and perl
+                    if ac_word.endswith('.class'):
+                        ac_prog = ac_prog.replace(ac_word, r'%s \"%s\"' % (java, os.path.join(ac_dir, ac_word[:-6])))
+                    elif ac_word.endswith('.jar'):
+                        ac_prog = ac_prog.replace(ac_word, r'%s -jar \"%s\"' % (java, os.path.join(ac_dir, ac_word)))
+                    elif ac_word.endswith('.pl'):
+                        ac_prog = ac_prog.replace(ac_word, r'%s -w \"%s\"' % (perl, os.path.join(ac_dir, ac_word)))
                     # write rc entries for this command
                     if found_prime == False:
                         if len(rc_entry) == 1:
@@ -275,13 +299,13 @@ def addViewerAlternatives(rcs):
         if len(rcs) == 1:
             m = r.match(rcs[0])
             if m:
-                alt = r'\viewer_alternatives ' + m.group(1) + " %%"
+                alt = r'\viewer_alternatives ' + m.group(1) + ' "%%"'
         elif len(rcs) > 1:
             m = r.match(rcs[idxx])
             if m:
                 if idxx > 0:
                     alt += '\n'
-                alt += r'\viewer_alternatives ' + m.group(1) + " %%"
+                alt += r'\viewer_alternatives ' + m.group(1) + ' "%%"'
     return alt
 
 
@@ -687,8 +711,8 @@ def checkConverterEntries():
     checkProg('a Sweave -> R/S code converter', ['Rscript --verbose --no-save --no-restore $$s/scripts/lyxstangle.R $$i $$e $$r'], 
         rc_entry = [ r'\converter sweave      r      "%%"    ""' ])
     #
-    checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex $$i', \
-        'htmltolatex -input $$i -output $$o', 'java -jar htmltolatex.jar -input $$i -output $$o'],
+    checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex $$i',
+        'htmltolatex -input $$i -output $$o', 'htmltolatex.jar -input $$i -output $$o'],
         rc_entry = [ r'\converter html       latex      "%%"   ""' ])
     #
     checkProg('an MS Word -> LaTeX converter', ['wvCleanLatex $$i $$o'],
@@ -993,11 +1017,8 @@ def checkOtherEntries():
         alt_rc_entry = [ r'\index_alternatives "%%"' ])
     checkProg('an index processor appropriate to Japanese', ['mendex -c -q', 'jmakeindex -c -q', 'makeindex -c -q'],
         rc_entry = [ r'\jindex_command "%%"' ])
-    path, splitindex = checkProg('the splitindex processor', ['splitindex.pl', 'splitindex'],
-        rc_entry = [ r'\splitindex_command "%%"' ])
-    if splitindex == '':
-        checkProg('the splitindex processor (java version)', ['splitindex.class'],
-            rc_entry = [ r'\splitindex_command "java splitindex"' ])
+    checkProg('the splitindex processor', ['splitindex.pl', 'splitindex',
+        'splitindex.class'], rc_entry = [ r'\splitindex_command "%%"' ])
     checkProg('a nomenclature processor', ['makeindex'],
         rc_entry = [ r'\nomencl_command "makeindex -s nomencl.ist"' ])
     ## FIXME: OCTAVE is not used anywhere
@@ -1391,6 +1412,9 @@ Format %i
 ''' % lyxrc_fileformat)
     # check latex
     LATEX = checkLatex(dtl_tools)
+    # check java and perl before any checkProg that may require them
+    java = checkProg('a java interpreter', ['java'])[1]
+    perl = checkProg('a perl interpreter', ['perl'])[1]
     checkFormatEntries(dtl_tools)
     checkConverterEntries()
     (chk_docbook, bool_docbook, docbook_cmd) = checkDocBook()
index 40cddb1f8052c9019540aaa08dfa0c9dc94d40a1..b65dd8895f4d98fd2390ec7d45b4d897945069ed 100644 (file)
@@ -116,3 +116,9 @@ What's new
 - Fix compile error with gcc 4.5.3 when using the included mythes library.
 
 - Fix the detection of the tex2lyx converter (bug 3308).
+
+- Fix the detection of htmltolatex (bug 6339).
+
+- Fix the detection of splitindex (bug 7579).
+
+- Fix the detection of jfig3-itext, jfig3.