Am 11.04.2013 um 00:23 schrieb Julien Rioux <jri...@lyx.org>:

> On 30/03/2013 9:46 AM, Vincent van Ravesteijn wrote:
>> When using CMake, the binary files are stored in <build-dir>/bin. LyX can't 
>> fin tex2lyx with the current code. So, we have to point configure.py to 
>> explicitly look in the binary dir.
>> 
>> Any objections ?
>> 
>> Vincent
>> 
>> ---
>>  lib/configure.py        |    9 ++++++++-
>>  src/support/Package.cpp |    2 +-
>>  2 files changed, 9 insertions(+), 2 deletions(-)
>> 
>> diff --git a/lib/configure.py b/lib/configure.py
>> index b6c453d..2ae6ec2 100644
>> --- a/lib/configure.py
>> +++ b/lib/configure.py
>> @@ -652,7 +652,10 @@ def checkConverterEntries():
>>      in_place = os.path.join(srcdir, '..', 'src', 'tex2lyx', 'tex2lyx')
>>      in_place = os.path.abspath(in_place)
>> 
>> -    path, t2l = checkProg('a LaTeX/Noweb -> LyX converter', [in_place, 
>> 'tex2lyx' + version_suffix, 'tex2lyx'],
>> +    in_binary_dir = os.path.join(lyx_binary_dir, 'tex2lyx')
>> +    in_binary_dir = os.path.abspath(in_binary_dir)
>> +
>> +    path, t2l = checkProg('a LaTeX/Noweb -> LyX converter', [in_place, 
>> in_place + version_suffix, in_binary_dir, in_binary_dir + version_suffix, 
>> 'tex2lyx' + version_suffix, 'tex2lyx'],
>>          rc_entry = [r'''\converter latex      lyx        "%% -f $$i $$o"    
>> ""
>>  \converter literate   lyx        "%% -n -m noweb -f $$i $$o"        ""'''], 
>> not_found = 'tex2lyx')
>>      if path == '':
>> @@ -1394,6 +1397,7 @@ if __name__ == '__main__':
>>      rc_entries = ''
>>      lyx_keep_temps = False
>>      version_suffix = ''
>> +    lyx_binary_dir = ''
>>      ## Parse the command line
>>      for op in sys.argv[1:]:   # default shell/for list is $*, the options
>>          if op in [ '-help', '--help', '-h' ]:
>> @@ -1404,6 +1408,7 @@ Options:
>>      --without-kpsewhich      do not update TeX files information via 
>> kpsewhich
>>      --without-latex-config   do not run LaTeX to determine configuration
>>      --with-version-suffix=suffix suffix of binary installed files
>> +    --binary-dir=directory   directory of binary installed files
>>  '''
>>              sys.exit(0)
>>          elif op == '--without-kpsewhich':
>> @@ -1414,6 +1419,8 @@ Options:
>>              lyx_keep_temps = True
>>          elif op[0:22] == '--with-version-suffix=':  # never mind if op is 
>> not long enough
>>              version_suffix = op[22:]
>> +        elif op[0:13] == '--binary-dir=':
>> +            lyx_binary_dir = op[13:]
>>          else:
>>              print "Unknown option", op
>>              sys.exit(1)
>> diff --git a/src/support/Package.cpp b/src/support/Package.cpp
>> index dab008e..695e89f 100644
>> --- a/src/support/Package.cpp
>> +++ b/src/support/Package.cpp
>> @@ -141,7 +141,7 @@ Package::Package(string const & command_line_arg0,
>>      FileName const configure_script(addName(system_support().absFileName(), 
>> "configure.py"));
>>      configure_command_ = os::python() + ' ' +
>>                      quoteName(configure_script.toFilesystemEncoding(), 
>> quote_python) +
>> -                    with_version_suffix();
>> +                    with_version_suffix() + " --binary-dir=" + 
>> binary_dir().absFileName();


A little bit late… but anyway…

I think it's not "spaces in path name" safe.

What about the attached patch?

Stephan

>> 
>>      LYXERR(Debug::INIT, "<package>\n"
>>              << "\tbinary_dir " << binary_dir().absFileName() << '\n'
>> 
> 
> +1, I think this fixes http://www.lyx.org/trac/ticket/6986 in a nice 
> build-system-agnostic way.
> 
> -- 
> Julien
> 

Attachment: binary_dir.patch
Description: Binary data

Reply via email to